PHP图片上传奇怪问题,各位帮忙!
echo "就在这里"; //--------------------------------------------------------- if (is_uploaded_file($this->tmp_name) === false) { $this->alert("上传失败。"); }
问题就出在上面那里,老是提示上传失败。
$this->tmp_name打印出来如下:
D:\\ServerPHP\\fileuploadtmp\\php89BD.tmp
die(var_dump($_FILES));打印也有数据
我前台是用JQ上传的:
回复讨论(解决方案)
你只给了两行代码,谁知道你之前还做了什么?
你只给了两行代码,谁知道你之前还做了什么?
private function check_upload() { //有上传文件时 if (empty($_FILES) === false) { //原文件名 就是文件名 $this->imageData['filename'] = $_FILES['imgFile']['name']; //服务器上临时文件名 $this->tmp_name = $_FILES['imgFile']['tmp_name']; //文件大小 $this->imageData['filesize'] = $_FILES['imgFile']['size']; //检查文件名 if (!$this->imageData['filename']) { $this->alert("请选择文件。"); } //检查目录 if (@is_dir($this->save_path) === false) { $this->alert("上传目录不存在。"); } //检查目录写权限 if (@is_writable($this->save_path) === false) { $this->alert("上传目录没有写权限。"); } //检查是否已上传 if (@is_uploaded_file($this->tmp_name) === false) { $this->alert("上传失败。"); } //检查文件大小 if ($this->imageData['filesize'] > $this->max_size) { $this->alert("上传文件大小超过限制。"); } //检查目录名 $this->dir_name = empty($_GET['dir']) ? 'image' : trim($_GET['dir']); if (empty($this->ext_arr[$this->dir_name])) { $this->alert("目录名不正确。"); } if($this->dir_name == 'image') { $this->imageData['type'] = 'image'; }else{ $this->imageData['type'] = 'file'; } $this->get_ext(); //检查扩展名 if (in_array($this->file_ext, $this->ext_arr[$this->dir_name]) === false) { $this->alert("上传文件扩展名是不允许的扩展名。\n只允许" . implode(",", $this->ext_arr[$this->dir_name]) . "格式。"); } } }
var_dump(is_file($this->tmp_name));
看看有什么,为什么你路径有两个\\
var_dump(is_file($this->tmp_name));
看看有什么,为什么你路径有两个\\
D:\\ServerPHP\\fileuploadtmp\\php89BD.tmp
是不是这种路径就不能正常上传?
var_dump(is_file($this->tmp_name));
看看有什么,为什么你路径有两个\\
bool(true)
这是代码文件有?
我问你 is_upload_file 之前还做了什么
你却贴了一个方法定义,怎么就知道这个方法被执行了呢?执行后又做了什么呢?
public function upload(){ error_reporting(E_ALL); ini_set('display_errors', 1); $filename=$_FILES['imgFile']['name']; $type=$_FILES['imgFile']['type']; $tmp_name=$_FILES['imgFile']['tmp_name']; $size=$_FILES['imgFile']['size']; $error=$_FILES['imgFile']['error']; $kk= move_uploaded_file($tmp_name, PATH_DATA . "/upload/".$filename); var_dump($kk);//这里返回false }
上传路径是调试过确认没有问题,临时文件打印也有。就move_uploaded_file处返回false
bool move_uploaded_file ( string filename, string destination )
本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。
如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 FALSE。此外还会发出一条警告。
$kk= move_uploaded_file($tmp_name, PATH_DATA . "/upload/".$filename);
把$tmp_name, PATH_DATA . "/upload/".$filename 打印出来看看。
膜拜我神.....
问题解决了谢~~
上一篇: Python中的斜杠
下一篇: php中的phpinfo()函数有什么用
推荐阅读
-
首次通过eclipse运行php代码遇到些问题,各位帮忙啊,谢谢!
-
请各位大大帮忙,php中session数组合并的有关问题
-
php-淘宝API 图片上传问题
-
在IE上传JPG图片的问题_PHP教程
-
紧急求教PHP版本有关问题,12:10了小弟我还没有吃饭呢,各位帮忙!
-
php图片上传有关问题
-
用php生成上传图片的缩略图问题
-
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法_php实例
-
PHP输出的奇怪有关问题阿!求大神帮忙看看小弟我看了一天没看懂哪里来的奇怪字符
-
php-PHP实现视频上传与播放,代码出现问题,求解!上传图片后提示没有上传文件或文件大于300M,是什么原因?