PHP图片上传奇怪问题,各位帮忙!

WBOY
Freigeben: 2016-06-23 13:06:35
Original
1021 Leute haben es durchsucht

    	echo "就在这里";		//---------------------------------------------------------            if (is_uploaded_file($this->tmp_name) === false) {                $this->alert("上传失败。");            }
Nach dem Login kopieren


问题就出在上面那里,老是提示上传失败。

$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]) . "格式。");            }        }    }
Nach dem Login kopieren

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	}
Nach dem Login kopieren

上传路径是调试过确认没有问题,临时文件打印也有。就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 打印出来看看。

膜拜我神.....

问题解决了谢~~

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage