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 />
现将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 />
运行结果显示警告:

我把获取到的$_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) 相当于直接读取服务器文件,当然就可以了。

Thesecrettokeepingaphp-poweredwebsiterunningsmoothlyunderheavyloadinVolvesserVeSkeystrategies: 1) pelaksanaanPodeCachingWithopCachetoreduceScriptexecutionTime, 2) UsedataBasequerycachingWnithSoRessendataBaBAboad, 3)

Anda harus mengambil berat tentang kebergantungan (DI) kerana ia menjadikan kod anda lebih jelas dan lebih mudah untuk dikekalkan. 1) Di menjadikannya lebih modular dengan decoupling kelas, 2) meningkatkan kemudahan ujian dan fleksibiliti kod, 3) menggunakan bekas DI untuk menguruskan kebergantungan kompleks, tetapi memberi perhatian kepada kesan prestasi dan kebergantungan bulat, 4) Amalan terbaik adalah bergantung kepada antara muka abstrak untuk mencapai gandingan longgar.

Ya, OptimizingaphpapplicationIspossibleandessential.1) pelaksanaanCachingUsingAputeDeducedeDataBaseload.2) OptimisedataTabaseseseshithindexing, eficientqueries, danConnectionPooling.3) EnhancecodeWithBuilt-Infungsi, EveringGlobalVariables

ThekeystrategiestoSignificLantantlyboostphpapplicationperformanceare: 1) useopcodecachinglikLikeopcachetoreduceExecutionTime, 2) OptimizedataBaseInteractionsWithPreparedStatementsandProperindexing, 3) ConfigureWebserverserverLikenginxWithPmforbetterShipter.

AphpdependencyInjectionContainerisatoLthatMatagesClassDependencies, EnhancingCodeModularity, Testability, andMaintainability.itactsascentralHubforcreatingandinjectingdependencies, sheReducingTightCouplingandeaseaseaseSunittesting.

Pilih DependencyInjection (DI) Untuk aplikasi besar, servicelocator sesuai untuk projek kecil atau prototaip. 1) DI meningkatkan kesesuaian dan modulariti kod melalui suntikan pembina. 2) ServiceLocator memperoleh perkhidmatan melalui pendaftaran pusat, yang mudah tetapi boleh menyebabkan peningkatan gandingan kod.

Phpapplicationscanbeoptimizedforspeedandeficiencyby: 1) enablingopcacheinphp.ini, 2) menggunakan preparedSwithpdofordatabasequeries, 3) menggantikanloopswitharray_filterandarray_mapfordataprocessing, 4) configuringnginywinginywinyvinyvinginy

PhpeMailvalidationInvolvestHreesteps: 1) formatValidationingRegularExpressionStocheckTheemailFormat; 2) dnsvalidationtoensurethedomainhasavalidmxrecord;


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan
