这个上传代码,究竟问题出在哪里啊???
这个上传代码,里面没有限制上传文件的大小,但是现在上传超过100K的就总无法上传,问题出在哪里啊?
我想弄限制,只能上传500K以内的文件,得如何改?
$allow_type=array("m4r","jpg");//允许上传的图片类型
$name=$_FILES['upImg']['name']; //客户端文件的原名称
$upload_dir="upload/";//图片保存目录
//strtolower 将字符串转为小写
$file_suffix=strtolower(getFileSuffix($name));
if(!in_array($file_suffix,$allow_type))
{
//implode 把数组元素组合为字符串
$all_type=implode("、",$allow_type);
exit("<script>alert('您只能上传 $all_type 格式的图片!');history.back();</script>");
}
//explode 把字符串分割为数组
$name_array=explode(".",$name);
do
{
$name_array[0]=randomFileName();
$name=implode(".",$name_array);
$upload_file=$upload_dir.$name;
}while(file_exists($upload_file));
$tmp_name=$_FILES['upImg']['tmp_name'];
//is_uploaded_file 判断文件是否是通过HTTP POST上传的
if(is_uploaded_file($tmp_name))
{
//move_uploaded_file 将上传文件移至指定目录
if(move_uploaded_file($tmp_name,$upload_file))
{
echo "$upload_file 歌曲上传成功!";
exit("<script>top.document.getElementById('url').value='$upload_file';</script>");
}
}
//获取文件后缀名
function getFileSuffix($fileName)
{
//strrchr 返回.在$fileName中最后出现的位置到结尾的所有字符。substr 再去掉'.'
return substr(strrchr($fileName, '.'), 1);
}
//生成随机文件名
function randomFileName()
{
//将时区调为北京时间,php5默认为格林威治标准时间
date_default_timezone_set("PRC");
return date('YmdHis').rand(100,999);
}
?>
------解决方案--------------------
1、超过100K的文件无法上传,请看一下$_FILES['upImg']['error']的值,可能有以下几种情况:
值为1,表示文件大小超过了php.ini中定义的upload_max_filesize;
值为2,表示文件大小超过了HTML中的限制。HTML中可以通过以下代码限制文件大小:
- HTML code
<!--限制文件大小不超过100KB--> <input type="hidden" name="MAX_FILE_SIZE" value="102400"> <input type="file" name="upImg"> <br><font color="#e78608">------解决方案--------------------</font><br>在PHP内判断也可以!<br>if($_FILES['upImg']['size']>1024*500)<br>{ <br> echo "文件超过了500k,无发上传!";<br> exit;<br>}<br>至于无法上传,我个人估计是:<br>do<br> {<br><br> $name_array[0]=randomFileName();<br><br> $name=implode(".",$name_array);<br><br> $upload_file=$upload_dir.$name;<br><br> }while(file_exists($upload_file));<br>文件存在才将$upload_file=$upload_dir.$name;事实该文件在第一次的时候肯定不存在,那这个do里的代码根本不执行,也就是说:$upload_file不能真实反映其文件路径,那么在后面move_uploaded_file的时候也就无法执行了。 <div class="clear"> </div>

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1
好用且免費的程式碼編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器