更新しない場合のファイル形式と Ajax に関連する PHP の問題

WBOY
リリース: 2016-06-13 11:58:41
オリジナル
914 人が閲覧しました

upload1.php コードを更新しない場合のファイル形式と ajax に関する 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 />
ログイン後にコピー


ここで、ファイル内の onchange をイベントとして使用し、選択したファイル名を checkfile() に渡します。

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 />
ログイン後にコピー


実行結果には警告が表示されます。



取得した $_POST["name"] エコーを確かに「E:\Album\Pictures\Wallpaper\Others\2.jpg」として表示しましたが、そうではありませんUpload1 のような感じです。php での値の受け渡しに問題があります。
次に、ファイルサイズをテストするために新しいファイル (「E:\Album\Pictures\Wallpaper\Others\2.jpg」) を作成しました。エコーが出ると、ページには 109739 と表示されましたが、問題ありませんでした。
では、何が問題だったのでしょうか?
------解決策---------
filesize はローカル ファイルのサイズのみを返すことができます

------解決策---------
まず、クライアントとサーバーを理解してください。
filesize はサーバー上のファイル サイズのみを取得できます。

冒頭の投稿の名前とパスはクライアント上の画像であり、サーバーに保存されていないため、ファイルサイズを取得できません。
そして if(filesize("E:\Album\Picture\Wallpaper\Other\2.jpg")>10000) と書きましたが、これはサーバー ファイルを直接読み取るのと同等ですが、もちろん問題ありません。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート