Can';在php中找不到tmp文件夹。(Ubuntu 10.10,apache2)
我有一个表单,可以上传图片。 我试图通过Can';在php中找不到tmp文件夹。(Ubuntu 10.10,apache2),php,ubuntu,file-upload,apache2,Php,Ubuntu,File Upload,Apache2,我有一个表单,可以上传图片。 我试图通过$\u文件获取它: $filename = $_FILES['screenshot']['name']; $source = $_FILES['screenshot']['tmp_name']."/".$filename; $target = GL_UPLOADPATH.$filename; echo "TEST0"; if (move_uploaded_file($source, $target)) { //connect t
$\u文件
获取它:
$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不能移动上传的文件,因为它找不到/tmp/phpoLqYdj/test2.jpg
但是/tmp/phpoLqYdj/
在哪里?我正在本地主机上测试。我的文档根目录是/var/www/
。
PHP在PHP.ini中有默认设置(upload\u tmp\u dir在PHP.ini中有注释)
在我的/tmp/
文件夹(在系统中)中,我没有像php***
这样的文件夹。在/var/tmp/
中
(Ubuntu10.10,LAMP是由“tasksel”安装的)当你通过PHP上传文件时,它会将它们存储在一个tmp文件中,这个文件名与文件名无关。将
$filename
附加到$\u文件['screenshot']['tmp\u name']
是不正确的处理方式<代码>$\u文件['screenshot']['tmp\u 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";
}
我也有同样的问题。我所做的修复是将您上传到的文件夹的权限更改为所有人的读写权限 错误报告是否已打开?是,默认情况下已关闭。我把它打开了:error\u reporting=E\u ALL&~E\u noticepp没有发布任何错误:(我认为move\u上传的文件只会返回false作为失败,并且忽略“if body”>>$\u FILES['screenshot']['tmp\u name']就是这个文件。哦,明白了。谢谢。我会试试看。