PHP Невозможно просмотреть изображение при загрузке с клиента на сервер

0

Я пытаюсь загрузить изображения с клиента на сервер. Мои клиентские и серверные машины являются отдельными, поэтому мне нужно отправить данные изображения с клиента на сервер.

Мой 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);

?>

Я могу сохранить изображение в моей папке uploads, и размер файла тоже тот же, но я не могу видеть изображение. Средство просмотра изображений говорит: "Не удалось загрузить файл png". Должен ли я преобразовать файл в формат png перед сохранением. Также как это сделать? Любая помощь?

В двух словах мне нужен конвертер, который может преобразовать формат файла в png или любой другой формат изображения, который может преобразовать мой файл в изображение на сервере.

Теги:
file-upload
copy
stream

1 ответ

1

Используйте $ _FILES вместо $ _POST в функции move_uploaded_file, например: move_upload_file ($ _ FILES [filedata] [tmp_name], YOUR_PATH/$ _ FILES [filedata] [имя]);

Здесь PHP doc: http://php.net/manual/fr/function.move-uploaded-file.php

  • 0
    Ваш ответ не ясен. Вы говорите, что мне вообще не нужно изменять код на стороне клиента и просто используйте move_uploaded_file ($ _ FILES ['filedata'] ['tmp_name'], $ target_file) ;? Я получаю эту ошибку «Уведомление: неопределенный индекс: filedata»
  • 0
    Я также положил полные коды PHP, если вы хотите посмотреть.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню