文章出處

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調試工具,稍微修改就大小就沒用了,所以限制文件以及大小必須在服務器上進行限制。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()