php 文件上传,移动失败

php 文件上传过程中,临时文件存在即$_FILES['file']['tmp_name']=D:\\wamp\\tmp\\php28F.tmp,但是is_uploaded_file($_FILES['file']['tmp_name'])返回值为FALSE,并且move_uploaded_file($_FILES['file']['tmp_name'], $upload)返回值为FALSE。$upload = $up_dir.DIRECTORY_SEPARATOR.$_FILES['file']['name'];求解!
问题解决了,解决方法:$_FILES['file']['tmp_name'] = str_replace('\\\\', '\\', $_FILES['file']['tmp_name']);

临时文件中的路径是双斜杠,即形式是:D:\\wamp\\tmp,你需要把双斜杠替换为单斜杠,即形式是:D:\wamp\tmp

第1个回答  2013-07-16
你饶了好大一圈。is_uploaded_file这个步骤是没有必要的,因此也就不用str_replace了。
move_uploaded_file内部已经包含了is_uploaded_file的判断,手册上有提到,无法使用move_uploaded_file移动非upload的文件。追问

去掉is_uploaded_file()判断,move_uploaded_file()返回依然为false,加上($_FILES['file']
['tmp_name'] = str_replace('\\\\', '\\', $_FILES['file']['tmp_name']);
)这一步后,文件上传成功

追答

这样啊。我的代码都是
if (! move_uploaded_file($file['tmp_name'], $filename))这样的,没对tmp_name进行额外处理。
不知道是不是php.ini的设置问题呢,比如你的设置中开启了对提交的数据自动转义的功能?开启之后斜杠和引号前面都会自动加上一个额外的反斜杠的。

追问

你说的是这个功能开启:magic_quotes_gpc ?我的是off状态,临时文件的路径是双斜杠。

追答

那就不知道咯。好奇怪。

本回答被提问者和网友采纳
第2个回答  2013-07-15
我也遇过, 明明已经产生了临时文件路径, 就是找不到对应文件. 后来换了台机, 一样的代码就可以上传上去.追问

问题解决了,解决方法:$_FILES['file']['tmp_name'] = str_replace('\\\\', '\\', $_FILES['file']['tmp_name']);

临时文件中的路径是双斜杠,即形式是:D:\\wamp\\tmp,你需要把双斜杠替换为单斜杠,即形式是:D:\wamp\tmp

PHP中move_uploaded_file()移动文件失败
在PHP中处理文件上传时,确保正确执行move_uploaded_file()函数是关键步骤。在进行移动文件操作前,务必使用is_uploaded_file()函数验证文件来源的合法性。请确保在调用move_uploaded_file()之前,先执行is_uploaded_file($_FILES['file']['tmp_name']),以确认文件正确上传。若出现“上传图标,运行move...

php文件上传,提示移动文件失败
php文件上传,提示移动文件失败,基本是上传保存的目录不可写造成的,需要好好设置一下,下面是一个PHP文件上传的简单例子,仅作参考:上传文件: <?php \/\/print_r($_FILES["upfile"]); if(is_uploaded_file($_FILES['upfile']['tmp_name'])){ $upfile=$_FILES["upfile"]; \/\/获取数组...

php 文件上传,移动失败
你饶了好大一圈。is_uploaded_file这个步骤是没有必要的,因此也就不用str_replace了。move_uploaded_file内部已经包含了is_uploaded_file的判断,手册上有提到,无法使用move_uploaded_file移动非upload的文件。

php 上传文件出现无法移动的问题
正确的代码应该为(加一个ROOT路径)move_uploaded_file( $this->file[tmp_name] ,ROOT. "\/" . $this->uploadPath . "\/" . $this->fileName )

PHP上传文件失败
提示显示的很清楚的。文件已经上传了,但是在把文件从临时文件夹移出来出错了。注意新地址是否正确 可以使用绝对路径或者相对路径,看个人http:\/\/www.hi-docs.com\/php\/move_uploaded_file.html

php文件上传失败的问题
1、php.ini:upload_max_filesize 所上传的文件的最大大小。默认值2M。2、php.ini:memory_limit 本指令设定了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted...

php的move_uploaded_file上传中文文件有时会失败
move_uploaded_file上传文件出错方式有很多,比如文件过大,比如上传文件夹无写权限,比如文件格式限制,你使用print_r(FILE)把上传文件的所有信息打印出来看看。看看错过码,找到错误就能定位!

急求,php网站在本机测试时上传图片都合适,发布到服务器上时上传就出现...
permission denied 你的服务器程序没有权限移动源目标或者 目的目标的文件 把文件夹的权限设置一下 或者 给服务器用户添加进能使用文件夹的用户组里面 chmod 0777 路径 最简单 但是不安全

PHP版怎么使用kindeditor4.1批量上传图片组件
name = $save_date . '_' . rand(10000, 99999) . '.' . $file_ext; \/\/移动文件 $file_path = $save_path . $new_file_name; $savePath .= $new_file_name; if (move_uploaded_file($tmp_name, $file_path) === false) { alert("上传文件失败。"); }el...

php 图片上传move_uploaded_file 出错
上传文件不存在。很可能是PHP临时文件夹不存在导致的。<?php \/ 文件上传类 \/ class Uploads{ \/\/上传文件 private $uploadFile;\/\/上传文件扩展名 private $ext = array('jpeg','jpg','gif','png');\/\/上传文件大小 private $size = 5000000;\/\/上传文件目录 private $uploadDir = '.\/uploads\/'...

相似回答
大家正在搜