繁体   English   中英

如何从 tmp 目录移动入站多部分表单数据文件

[英]How to move Inbound Multipart form-data file from tmp directory

我正在编写一个 webhook 来接收入站传真。 入站 POST 到达服务器。 问题是检索帖子的附件。 我的错误日志中有此消息。

 PHP Warning:  copy(/tmp/php4qL9du/pdf-sample.pdf): failed to open stream: No such file or directory in 

$_FILES 中的数组是这个

Array
(
  [attachment] => Array
    (
        [name] => pdf-sample.pdf
        [type] => application/pdf
        [tmp_name] => /tmp/phppw5aIU
        [error] => 0
        [size] => 7945
    )

)

我将数组放入变量中。

 $inboundFaxDocumentName = $_FILES['attachment']['name'];
 $inboundFaxLocation = $_FILES['attachment']['tmp_name'];
 $inboundFaxFilesize = $_FILES['attachment']['size'];
 $local = $inboundFaxLocation."/".$inboundFaxDocumentName;
 copy($local, "/var/www/html/new_home/");

我想我会提前 go 并展示我在这个入站 webhook 上的标题

header("Access-Control-Allow-Origin: *");
header("Content-Type: multipart/form-data; charset-UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorizations, X-Requested-With");

我曾尝试手动 go 查找文件。 我一直找不到任何文件。 我不确定我还能做些什么来解决这种情况。 任何有关故障排除的建议将不胜感激。

试一试

$local = $inboundFaxLocation;

$_FILES['attachment']['tmp_name']应该已经包含临时文件的完整路径,也不需要添加原始名称。

PS 通常在 PHP 中,人们使用move_uploaded_file()专门用于将上传的文件从其临时上传位置传输到更永久的位置 - 复制真的没有意义,因为临时文件无论如何都会在一段时间后被删除脚本结束。

对我有用的最终代码。

 move_uploaded_file($_FILES['attachment']['tmp_name'], "/var/www/html/new_home/" . $_FILES['attachment']['name']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM