標題:
中文檔名不能上傳的解決方案
[打印本頁]
作者:
may
時間:
2013-7-4 19:16
標題:
中文檔名不能上傳的解決方案
<html>
<head>
<title>檔案上傳</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
請選擇上傳的圖片:<input type="file" name="file_input" /><br />
<input type="submit" name="send" value="送出" />
</form>
<?php
$upload_dir = './photo/'; //檔案上傳的目錄
$size_limit = 5*1024*1024*1024; //5GB
$arr_ext = array('.jpg', '.png', '.bmp', '.gif', '.tif', '.pcx', '.psd'); //設定允許上傳的副檔名
if(isset($_POST['send'])){ //判斷是否按下送出鈕, 且 $_POST['send'] 有值
$file_name = strtolower($_FILES['file_input']['name']); //取得檔案的名稱 //strtolower 將英文字串轉為小寫
$file_type = $_FILES['file_input']['type']; //取得檔案類型
$file_size = $_FILES['file_input']['size']; //取得檔案大小
$tmp_name = $_FILES['file_input']['tmp_name']; //取得檔案暫存路徑
$ext = strrchr($file_name, '.'); //取得副檔名
if(file_exists($tmp_name)){
echo '存在';
}else{
echo '不存在';
}
/*echo $file_name.'<br />';
echo $file_type.'<br />';
echo $file_size.'<br />';
echo $tmp_name;*/
if(!is_uploaded_file($tmp_name)){//判斷使用者是否正常方式上傳
echo '上傳失敗,沒有選取上傳檔案。';
}else if($file_size > $size_limit){ //若使用者上傳的檔案大小大於設定值時
echo '檔案太大。';
}else if(!in_array($ext, $arr_ext)){ //判斷 $ext 是否在 $arr_ext陣列裡
echo '上傳失敗,只允許 '.implode(',', $arr_ext).' 副檔名';
}else if(move_uploaded_file($tmp_name, $upload_dir.iconv('utf-8', 'big5', $file_name))){//檢查上傳狀態
echo '上傳成功';
}else{
echo '上傳失敗';
}
}
?>
</body>
</html>
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2