文章出處
文章列表
HTML代碼上傳文件:
<form action="doAction.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="51200" /> 請選擇上傳文件:<input type="file" name="myFile" /><br /> <input type="submit" value="上傳" />
doAction.php文件代碼:
<meta charset="utf-8"> <?php //files //print_r($_FILES); $filename=$_FILES['myFile']['name']; $type=$_FILES['myFile']['type']; $tmp_name=$_FILES['myFile']['tmp_name']; $error=$_FILES['myFile']['error']; $size=$_FILES['myFile']['size']; //判斷下錯誤信息 if($error==UPLOAD_ERR_OK) { //需要判斷下文件是否是通過HTTP POST方式上傳 //is_uploaded_file($tmp_name,$destination); //$destination="uploads/".$filename; $destination="uploads/".$filename; if(is_uploaded_file($tmp_name)) { if(move_uploaded_file($tmp_name,$destination)) { $mes="文件上傳成功"; }else { $mes="文件移動失敗"; } }else { $mes="文件不是通過HTTP POST方式上傳上來的"; } }else { switch($error) { case 1: $mes="超過了配置文件上傳文件的大小"; // UPLOAD_ERR_INI_SIZE break; case 2: $mes="超過了表單設置上傳文件的大小"; // UPLOAD_ERR_FORM_SIZE break; case 3: $mes="文件部分被上傳"; // UPLOAD_ERR_PARTIAL break; case 4: $mes="沒有文件被上傳"; // UPLOAD_ERR_NO_FILE break; case 6: $mes="沒有找到臨時目錄"; // UPLOAD_ERR_NO_TMP_DIR break; case 7: $mes="文件不可寫"; //UPLOAD_ERR_CANT_WRITE break; case 8: $mes="由于擴展文件中斷了文件上傳"; // UPLOAD_ERR_EXTENSION break; } } echo $mes; //服務器端進行的配置 是在配置環境中php.ini中的配置 //file_uploads = On 支持通過HTTP POST方式上傳文件 //;upload_tmp_dir = 臨時文件保存目錄 //upload_max_filesize = 2M 默認值是2M,上傳的最大大小是2M //post_max_size = 8M 表單以POST方式發送數據的最大值,默認8M //客戶端進行配置 //<input type="hidden" name="MAX_FILE_SIZE" value="1024" /> 這里就是case 2判斷是否錯誤的類型 //<input type="file" name="myFile" accept="文件的MIME類型,..."/>
但是需要注意的是:<input type="hidden" name="MAX_FILE_SIZE" value="1024" />在客戶端限制的文件大小,懂程序的人來說,這些只要打開F12調試工具,稍微修改就大小就沒用了,所以限制文件以及大小必須在服務器上進行限制。
文章列表
全站熱搜