我正在尝试将图像从客户端上传到服务器。我的客户端和服务器机器是分开的,因此我需要将图像数据从客户端发送到服务器。
我的客户端php代码就像(Full client-side code):
$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);
我的服务器端代码是(Full server-side code):
<?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或任何其他图像格式,可以将我的文件转换为服务器端的图像。
答案 0 :(得分:1)
在move_uploaded_file函数中使用$ _FILES而不是$ _POST,例如: move_upload_file($ _ FILES [filedata] [tmp_name],YOUR_PATH / $ _ FILES [filedata] [name]);
这里的PHP文档: http://php.net/manual/fr/function.move-uploaded-file.php