4
回答
请问大牛们,我最近在帮学校一个俱乐部做网站,php上传图片时遇到了恼火问题。
终于搞明白,存储TCO原来是这样算的>>>   

问题如下:先上代码

 

           if (!is_dir("../data/showcase"))
		 mkdir("../data/showcase");
	   else{
		move_uploaded_file($_FILES["post_file"]['tmp_name'],
				"../data/showcase/".$_FILES["post_file"]['name']);
		echo "UPLOAD_OK";
		}
                 

 

问题最后老是在网站根目录下得不到上传的文件,可以再根目录下创建文件夹,为什么目录中总是接收不到上传的文件呢,
权限问题?还是PHP.ini设置问题?因为想要做个进度条什么的,就没有用form表单,前台用了Ajax的方法,不知道会不会有影响。
 echo $_FILES["find_post_file_btn"]['tmp_name'] 和 echo $_FILES["find_post_file_btn"]['name']都为空。。
我就郁闷了,不知道原因,请大牛们指教。
PHP
举报
yusaint
发帖于7年前 4回/315阅
共有4个答案 最后回答: 7年前

第一个问题:网站根目录下得不到上传的文件;

答:你这里"../data/showcase",是一个相对目录,和你的程序目录比较难处理,同时,在PHP操作程序时,你这们的写法在不同系统下可能有问题,这里最好的解决方法,用程序找出网站的根目录的绝对路径: $ROOT_DIR = dirname(dirname(__FILE__));注:这里的dirname层次要看你的程序文件相对根目录的层次.

这样,你可以用$path = $ROOT_DIR."/data/showcase",

 if (!is_dir($path))   {

mkdir($path); //mkdir($path, 777);   

}else{   

move_uploaded_file($_FILES["post_file"]['tmp_name'],    $path.'/'.$_FILES["post_file"]['name']);   

echo "UPLOAD_OK";   

}   

第二,在PHP实中实现上传进度条相对困难,纯php模块是实现不了的,要借用其实模块,如APC等之类.即使用iframe,ajax之类做进度条,只是用一个“.gif”文件显示一个“进度”,实际并不是数据上传到服务器的过程进度。

如果要实现比较好的进度,要在javascript,php都比较好的基础才能较好的实现,如果有兴趣,可以用swfupload这个flash上传工具,可以实现很的上传进度。

"因为想要做个进度条什么的,就没有用form表单,前台用了Ajax的方法,不知道会不会有影响。" 你的问题大概是由于你使用AJAX上传

而没经过FORM(备注:可以 通过 AJAX 把整个FORM提交),另外你FORM 设定中必须有一项:enctype="multipart/form-data" 的设置,这样才能取到文件。

顶部