Home > Backend Development > PHP Tutorial > php关于file表单与ajax无刷新的有关问题

php关于file表单与ajax无刷新的有关问题

WBOY
Release: 2016-06-13 11:58:41
Original
945 people have browsed it

php关于file表单与ajax无刷新的问题
upload1.php代码如下

<br /><script type="text/javascript"><br />function checkfile(name){<br />	var xhr;<br />	if(window.XMLHttpRequest){<br />		xhr = new XMLHttpRequest();<br />	}<br />	else xhr = new ActiveXObject("Microsoft.XMLHTTP");<br /><br />	xhr.onreadystatechange=function(){<br />		if(xhr.readyState == "4" && xhr.status == "200"){<br />			document.getElementById("err").innerHTML = xhr.responseText;<br />		}<br />	}<br /><br />	xhr.open("POST","result.php",true);<br />	xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");<br />	xhr.send("name=" + name);<br />}<br /></script><br /><form enctype="multipart/form-data" method="post" action="upload2.php"><br />	<input type="hidden" name="MAX_FILE_SIZE" value="10000" /><br />	上传文件:<input type="file" name="filename" onchange="checkfile(this.value)" /><br /><br />	<input type="submit" value="上传" /><br /><br />	<br />	<p id="err"></p><br /></form><br />
Copy after login


现将file中的onchange作为事件将我选择的文件名通过value传入checkfile()并请求result.php进行处理并回发,从而实现无刷新提示.

result.php代码如下
<br /><?php<br /><br />	$filepath = $_POST["name"];	<br />	$err = "";<br />	if(filesize($filepath) > 10000) $err = "文件不得超过10kb!";<br />	<br />	echo $err;<br /><br />?><br />
Copy after login


运行结果显示警告:



我把获取到的$_POST["name"]  echo 显示出来确实是“E:\\图册\\图片\\壁纸\\其他\\2.jpg”,感觉不是upload1.php那边传值的问题。
然后我新建一个文件测试filesize(“E:\\图册\\图片\\壁纸\\其他\\2.jpg”),echo出来页面显示是109739也没问题。
那么到底哪里出了问题?
------解决方案--------------------
filesize 只能返回本地文件的大小

------解决方案--------------------
先搞清楚,客户端与服务器端。
filesize只能获取到服务器上的文件大小。

一开始你post的name,路径是你客户端的图片,并未保存到服务器,因此,filesize不可以获取到。
而你写死了if(filesize("E:\\图册\\图片\\壁纸\\其他\\2.jpg")>10000) 相当于直接读取服务器文件,当然就可以了。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template