【发布时间】:2014-09-16 04:54:57
【问题描述】:
我正在尝试使用 PHP CURL 将 zip 文件夹上传到远程服务器,但我不知道为什么上传到远程服务器的 zip 文件夹/文件是空的!
基本上文件已上传(以某种方式),但当我查看上传的文件夹时,它显示为 0 bytes 但 zip 文件夹中有 700 bytes 的文件!
这是我的代码:
<form enctype="multipart/form-data" encoding="multipart/form-data" method="post" action="myfile.php">
<input name="uploadedfile" type="file" value="choose">
<input type="submit" value="Upload">
</form>
<?php
if (isset($_FILES['uploadedfile']) ) {
$filePath = $_FILES['uploadedfile']['tmp_name'];
$POST_DATA = array(
'file' => '@'. realpath($filePath)
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://remotesite/handle.php');
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $POST_DATA);
$response = curl_exec($curl);
curl_close ($curl);
if($errno = curl_errno($curl)) {
$error_message = curl_strerror($errno);
echo "cURL error ({$errno}):\n {$error_message}";
} else {
echo "<h2>File Uploaded</h2>";
}
}
?>
这是我的 handle.php 代码:
<?php
$encoded_file = $_POST['file'];
$decoded_file = base64_decode($encoded_file);
/* Now you can copy the uploaded file to your server. */
file_put_contents('subins.zip', $decoded_file);
?>
有人可以告诉我我错过了什么或做错了什么吗?
提前致谢,
【问题讨论】:
-
它是否适用于其他文件类型?检查以确保服务器没有遇到磁盘配额问题。
-
您正在查看handle.php 中的$POST['file'] 但输入似乎被称为uploadefile。无论如何,您将内容放入 zip 文件中,但从不尝试将其“解压缩”到文件夹中...