<?php?
header("content-type:text/html;charset=utf-8");
//$_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){?//或者用$error==0?也可以就是指沒有錯誤
//需要判斷一下文件是否是通過HTTP?POST方式上傳
//is_uploaded_file($filename);
$destination="uploads/".$filename;
if(is_uploaded_file($filename)){
if(move_uploaded_file($tmp_name,?$destination)){
$mes="文件上傳成功";
}else{
$mes="文件上傳失敗";
}
}else{
$mes="文件不是通過HTTP?POST方式上傳來的";
}
}else{
switch?($error){
case?1:
???$mes="超過了配置文件上傳文件限定的大小";
???//UPLOAD_ERR_FORM_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="由于PHP擴展程序中斷了文件上傳";//UPLOAD_ERR_EXTENSION
break;
}
}
echo?$mes;
//服務器端進行的配置
//1》file_uploads?=?On,支持通過HTTP?POST方式上傳文件
//2》upload_tmp_dir?=?"d:/wamp/tmp"?臨時文件保存目錄
//3》upload_max_filesize?=?2M?上傳文件的最大大小
//4》post_max_size?=?8M?表單以POST發送數據的最大值
//客戶端進行配置
//?<input?type="hidden"?name="MAX_FILE_SIZE"?value="1024"/>
2014-12-21
if(is_uploaded_file($filename))修改成if(!is_uploaded_file($filename))試試
2014-12-24
判斷的是存在服務器上的臨時文件,你判斷錯啦
^-^...
2015-04-21
文件不是通過HTTP POST方式上傳來的?。?老師我也遇到這個問題,青幫我看看代碼,謝謝!
<?php
header("content-type:text/html;charset=utf-8");
//$_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) {
? ? $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 = "超過了配置文件上傳大小";
? ? ? ? ? ? break;
? ? ? ? case 2:
? ? ? ? ? ? $mes = "超過了表單設置上傳文件大小";
? ? ? ? ? ? break;
? ? ? ? case 3:
? ? ? ? ? ? $mes = "文件部分被上傳";
? ? ? ? ? ? break;
? ? ? ? case 4:
? ? ? ? ? ? $mes = "沒有文件上傳";
? ? ? ? ? ? break;
? ? ? ? case 6:
? ? ? ? ? ? $mes = "沒有找到臨時目錄";
? ? ? ? ? ? break;
? ? ? ? case 7:
? ? ? ? ? ? $mes = "文件不可寫";
? ? ? ? ? ? break;
? ? ? ? case 8:
? ? ? ? ? ? $mes = "由于PHP擴展程序中斷了文件上傳";
? ? ? ? ? ? break;
? ? }
}
echo $mes;