PHP文件上传,文件在move_uploaded_files之前从/ tmp消失

Bow*_*wen 15 php upload file-upload file

我有一个非常基本的上传脚本,可能直接从php.net/move_upload_files功能页面解除.

move_uploaded_file()失败,因为它无法在tmp文件夹中找到tmp文件.但是我知道它被放在那里,但move_upload_file()在我的脚本中处理它之前就被删除了.我知道它被放在那里,因为当一个大文件被发布到服务器时我可以在那里看到一个文件.

$_FILES包含我刚刚上传的文件的正确详细信息.

有没有人知道为什么临时文件在我有机会处理之前从/ tmp中删除了?

这是我正在使用的基本代码.

if(move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_file))
{
    $result['error'] = 'false';
    $result['file_loc'] = $upload_file;
}
else
{
    $result['error'] = 'true';
}
Run Code Online (Sandbox Code Playgroud)

输出print_r($_FILES)看起来像

[userfile] => Array
(
    [name] => switchsolo.png
    [type] => image/png
    [tmp_name] => /tmp/phpIyKRl5
    [error] => 0
    [size] => 6690
)
Run Code Online (Sandbox Code Playgroud)

但/ tmp/phpIyKRl5根本就不存在.

Kri*_*son 10

1)post_max_size和upload_max_filesize的值是否高于您尝试上传的文件的大小?

2)您的上传脚本执行的时间是否比max_execution_time变量的值允许的时间长?

3)我假设您的上传脚本不会消耗尽可能多的内存,因为memory_limit变量允许.当客户端将文件上传到服务器时,服务器可能会在执行此操作时将其中的一部分保留在内存中.我不确定它是否会以某种方式影响php.ini中memory_limit变量的限制.

可以在php.ini和/或.htaccess中或使用ini_set()更改这些变量.

希望有所帮助.

  • 每当我遇到文件上传问题时,都会通过关注1或2. +1来解决 (2认同)

Joe*_*l L 6

脚本完成执行后将删除该文件.如果您运行脚本,然后检查/ tmp /文件夹,则无论如何都不会存在该文件.


Pet*_*and -2

form应该使用这样的标签:

<form method="post" enctype="multipart/form-data" action="...">
Run Code Online (Sandbox Code Playgroud)

用于。multiple/form-dataenctype