php - 在 php.ini 中找不到 tmp 文件夹。 (Ubuntu 10.10, apache2)

标签 php ubuntu file-upload apache2

我有一个表格,可以上传一张图片。
我尝试通过 $_FILES 获得它:

$filename = $_FILES['screenshot']['name'];
$source = $_FILES['screenshot']['tmp_name']."/".$filename;
$target = GL_UPLOADPATH.$filename;

echo "TEST0";        

if (move_uploaded_file($source, $target)) {
    //connect to DB and so on, what I need

    echo "TEST1";
}

所以我得到回应 TEST0但不要得到回应 TEST1 .
如果我回显每个变量 - 这是正常的。我看到我的 $target - 类似于 /tmp/phpoLqYdj/test2.jpg
所以,我认为 PHP 不能 move_uploaded_file因为找不到/tmp/phpoLqYdj/test2.jpg
但是/tmp/phpoLqYdj/ 在哪里? ?我正在本地主机上进行测试。我的文档根目录是 /var/www/ .
PHP 在 php.ini 中有默认设置(upload_tmp_dir 在 php.ini 中有注释)。

在我的 /tmp/文件夹(在系统中) 我没有像 php*** 这样的文件夹.在 /var/tmp/任何一个。

(Ubuntu 10.10,LAMP 由“tasksel”安装)

最佳答案

当您通过 PHP 上传文件时,它会将它们存储为一个 tmp 文件,该文件未命名与文件名相关的任何内容。附加 $filename$_FILES['screenshot']['tmp_name']是不正确的处理方式... $_FILES['screenshot']['tmp_name']是文件。

此外,在请求结束时会删除 tmp 文件,因此您将永远没有机会在文件管理器中实际看到它。要么在同一个请求中移动它,要么它消失了。这一切都是以安全的名义完成的。

无论如何,只需使用它,你就会很好。

$filename = $_FILES['screenshot']['name'];
$source = $_FILES['screenshot']['tmp_name'];
$target = GL_UPLOADPATH.$filename;

echo "TEST0";        

if (move_uploaded_file($source, $target)) {
    //connect to DB and so on, what I need

    echo "TEST1";
}

关于php - 在 php.ini 中找不到 tmp 文件夹。 (Ubuntu 10.10, apache2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4903496/

相关文章:

php - 如何在刷新页面时停止 'Conform form resubmission' 对话框

ubuntu - 编辑 .cfg 会使 Ubuntu 服务器卡在 vi 编辑器中

python - 在 docker : "ImportError: No module named tqdm" 中运行 python 代码

javascript - 如何使用客户端 javascript 创建内存文件并上传到服务器?

php - Symfony3 : is it possible to change the name of a form?

php - session (CodeIgniter)

node.js - 如何限制文件上传大小以防止XSS攻击占用服务器空间

asp.net - 超出最大请求长度。

php - 在 php 中上传文件大小 > 5MB 时出错?

Java FileWriter 类 - java.io.FileNotFoundException : * no such file or directory -Ubuntu