Я пытаюсь загрузить изображения с клиента на сервер. Мои клиентские и серверные машины отделены друг от друга, поэтому мне нужно отправить данные изображения с клиента на сервер.
Мой PHP-код на стороне клиента выглядит так (Полный код на стороне клиента):
$filename = $_FILES["fileToUpload"]["name"];
$filedata = $_FILES['fileToUpload']['tmp_name'];
$imagedata = file_get_contents($_FILES['fileToUpload']['tmp_name']);
$fields = array(
'filename' => $filename,
'filedata' => "@$filedata"'imagedata' => "@$imagedata");
$field_string = http_build_query($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://10.2.16.102/temp.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_INFILESIZE, $filesize);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $field_string);
$server_output = curl_exec ($ch);
curl_close ($ch);
и мой код на стороне сервера (Полный код на стороне сервера):
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
echo " and the filename is ". $_POST['filename'];
$uploadpath = "/uploads/";
$target_file = $_SERVER['DOCUMENT_ROOT']. $uploadpath . $_POST['filename'];
file_put_contents($target_file, $_POST['imagedata']);
//move_uploaded_file($_POST['filedata'],$target_file);
//copy($_POST['filedata'],$target_file);
?>
Я могу сохранить изображение в своей папке для выгрузки, и размер файла такой же, но я не могу увидеть изображение. Программа просмотра изображений говорит: «Не удалось загрузить файл PNG». Нужно ли конвертировать файл в png формат перед сохранением. И как это сделать? Любая помощь?
Короче говоря, мне нужен конвертер, который может конвертировать формат файла в png или любой другой формат изображения, который может конвертировать мой файл в изображение на стороне сервера.
Используйте $ _FILES вместо $ _POST в функции move_uploaded_file, например:
move_upload_file ($ _ FILES [filedata] [tmp_name], YOUR_PATH / $ _ FILES [filedata] [name]);
Вот PHP документ:
http://php.net/manual/fr/function.move-uploaded-file.php
Других решений пока нет …