php post 文件使用 file_get_contents 不适用于某些文件类型
php post file using file_get_contents does not work for some file types
以下代码工作正常,但是如果我将文件更改为使用 myFile.pdf 或 myFile.xlsx,则创建的文件为 0 字节。工作版本和非工作版本唯一改变的是文件类型。为什么我的 excel 个文件和 pdf 文件只有 0 个字节?
$file = file_get_contents('myFile.xml');
$url = 'destination.php';
$post_data = array(
"file" => $file,
"fileName" => "myFile.xml"
);
$stream_options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query($post_data),
),
);
$context = stream_context_create($stream_options);
$response = file_get_contents($url, null, $context);
echo $response;
然后我的目标文件会这样保存文件:
file_put_contents($_POST["fileName"], $_POST["file"]);
?>
在我的例子中,问题实际上是服务器上的文件大小限制,文件类型只是巧合。检查 post_max_size 和 upload_max_filesize.
以下代码工作正常,但是如果我将文件更改为使用 myFile.pdf 或 myFile.xlsx,则创建的文件为 0 字节。工作版本和非工作版本唯一改变的是文件类型。为什么我的 excel 个文件和 pdf 文件只有 0 个字节?
$file = file_get_contents('myFile.xml');
$url = 'destination.php';
$post_data = array(
"file" => $file,
"fileName" => "myFile.xml"
);
$stream_options = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query($post_data),
),
);
$context = stream_context_create($stream_options);
$response = file_get_contents($url, null, $context);
echo $response;
然后我的目标文件会这样保存文件:
file_put_contents($_POST["fileName"], $_POST["file"]);
?>
在我的例子中,问题实际上是服务器上的文件大小限制,文件类型只是巧合。检查 post_max_size 和 upload_max_filesize.