jquery — php: // ввод изображения Uplaod с типом изображения

Я реализую перетащить и загрузить изображение с вызовом ajax,
Я видел учебник по этому вопросу и реализовал его так: с помощью этого кода я могу сохранить изображение только в формате .jpg! (или любой другой формат, который я указываю в коде)

загруженное изображение сохранено в PHP: // ввод папку, и нам нужно взять это изображение из этой временной папки, чтобы сохранить его на сервере,

но они ничего не сказали, чтобы изменить формат изображения в соответствии с тип изображения,

теперь я хочу загружать изображение в оригинальный формат, Как я могу собрать информацию об изображении во время его загрузки?

вот код

    <?php
$str =file_get_contents('php://input');
$filename = md5(time()).'.jpg';
$path = 'upload/'.$filename;
file_put_contents($path,$str);
echo $path;

Вот несколько JS для получения изображения и отправки AJAX-запроса:

    $(function(){

//select the drop container
var obj = $('.drop');

// dragover event listener
obj.on('dragover',function(e){
e.stopPropagation();
e.preventDefault();
$(this).css('border',"2px solid #16a085");
});

//drop event listener
obj.on('drop',function(e){
e.stopPropagation();
e.preventDefault();
$(this).css('border',"2px dotted #bdc3c7");

//get the files
var files = e.originalEvent.dataTransfer.files;
var file =files[0];
//console.log(file);

//upload data using the xhr object
upload(file);

});

function upload(file){

//create xhr object
xhr = new XMLHttpRequest();

//initiate request
xhr.open('post','drop.php',true);

//set headers
xhr.setRequestHeader('Content-Type',"multipart/form-data");
xhr.setRequestHeader('X-File-Name',file.fileName);
xhr.setRequestHeader('X-File-Size',file.fileSize);
xhr.setRequestHeader('X-File-Type',file.fileType);

//send the file
xhr.send(file);
}

});

0

Решение

Наконец-то я исправил эту проблему.

с PHP не было проблем с перехватом заголовков, так как Магнус Эрикссон сказал $ _SERVER [ ‘HTTP_X_FILE_TYPE’] работает нормально, но проблема была при отправке заголовка ajax мы установили тип и размер заголовка неправильно.

я зарегистрировал данные файла и нашел тип а также размер но я установил заголовок как тип файла а также размер файла

изменил код и вот код до и после:

ДО: AJAX-запрос:

// устанавливаем заголовки
xhr.setRequestHeader ( ‘Content-Type’, «многочастному / форм-данных»);
xhr.setRequestHeader ( ‘X-File-Name’, file.fileName);
xhr.setRequestHeader ( ‘X-File-Size’, file.fileSize);
xhr.setRequestHeader ( ‘X-File-Type’, file.fileType);

и PHP:

$str =file_get_contents('php://input');
$filename = md5(time()).'.jpg';
$path = 'upload/'.$filename;
file_put_contents($path,$str);
echo $path;

ПОСЛЕ: AJAX-запрос:

// устанавливаем заголовки
xhr.setRequestHeader ( ‘Content-Type’, «многочастному / форм-данных»);
xhr.setRequestHeader ( ‘X-File-Name’, file.fileName);
xhr.setRequestHeader ( ‘X-File-Size’, file.size);
xhr.setRequestHeader ( ‘X-File-Type’, file.type);

и PHP:

$str =file_get_contents('php://input');
$ext = $_SERVER['HTTP_X_FILE_TYPE'];
$e = explode("/",$ext);
$ext = $e[1];
$filename = md5(time()).'.'.$ext;
$path = 'upload/'.$filename;
file_put_contents($path,$str);
echo $path;

этот код работает нормально 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector