国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

一個簡單上傳文件出錯的解決

2019-11-18 19:15:10
字體:
來源:轉載
供稿:網友

以前沒怎么注意搞過文件上傳,昨天搞了一個簡單的卻發現問題還挺多。

剛開始的程序代碼如下:
uploadimg.php
 
<?php

//判斷是上載界面還是實現界面,如果是上載界面,顯示下面的HTML頁面
if(!$_POST['UploadAction']):

?>

<html>
<head>
<title></title>
</head>
<body><table><center>
<form enctype="mult<input type="hidden" name="UploadAction" value="1">
<tr><td><input name="UploadFile" type="file" size="30"></td></tr>
<tr><td><input type="submit" name="submit" value="上傳"></td>
        <td><input type="reset" name="reset" value="重置"></td></tr>
</form>
</center></table></body>
</html>

<?php

//如果是實現頁面,顯示下面的HTML頁面,并激活PHP腳本
else:

?>

<html>
<head>
<title></title>
</head>
<body>

<?php


//www.survivalescaperooms.com初始化UploadAction的狀態
$UploadAction=0;

$UploadFile=$_POST['UploadFile'];

if(($UploadFile!="none") && ($UploadFile!=""))
{
        $UploadPath=$_SERVER['DOCUMENT_ROOT']."http://";

        if (!is_writeable($UploadPath))
        {
                echo "$UploadPath目錄不可寫!"; exit;
        }
        else
        {
                echo " $UploadPath 目錄可寫!";
        }

        $FileName=$UploadFile_name;

        if($UploadFile_size<1024)
        {
                $FileSize=(string)$UploadFile_size."字節";
        }
        elseif($UploadFile_size<(1024*1024))
        {
                $FileSize=number_format((double)($UploadFile_size/1024),1)."KB";
        }
        else
        {
                $FileSize=number_format((double)($UploadFile_size/(1024*1024)),1)."KB";
        }
        if(!file_exists($UploadPath.$FileName))
        {
                if(move_uploaded_file($UploadFile,$UploadPath.$FileName))
                {
                        echo "文件 $UploadFile_name ($FileSize) 上傳成功!";
                }
                else
                {
                        echo "文件 $UploadFile_name ($FileSize) 上傳失敗!";
                }
                unlink($UploadPath.$FileName);
        }
        else
        {
                echo "文件 $UploadFile_name 已經存在!";
        }
}
else
{
        echo "你沒有選擇任何文件上傳,或者上傳的文件超出了 $MAX_FILE_SIZE !";
}

?>

<br><a href="uploadimg.php">返回</a>
</body>
</html>

<?php

endif

?>
 


運行發現上傳一點效果都沒有,連實現頁面都進入不了,搜索詢問之后才曉得上傳文件獲得要用$_FILES

于是做了一些變化:


    
$UploadFile=$_FILES['UploadFile']['tmp_name'];
$UploadFile_size=$_FILES['UploadFile']['size'];
$UploadFile_name=$_FILES['UploadFile']['name'];
$FileName=strtolower($UploadFile_name);
 


本來以為這下一定搞定,結果出現錯誤信息為:


    
Warning: move_uploaded_file(F:/Server/www/): failed to open stream: Permission denied in F:/Server/www/eoool/finish/uploadimg.php on line 76
Warning: move_uploaded_file(): Unable to move 'E:/WINDOWS/TEMP/php34.tmp' to 'F://Server//www' in F:/Server/www/eoool/finish/uploadimg.php on line 76
文件 *****(****字節) 上傳失敗!
 


而我是在WIN系統上進行調試,應該不存在文件權限問題,自己看了又看,想了又想,卻仍然不得其法,在落伍和喜悅都發帖求救,卻沒有得到正確的答案,僅僅一個簡單的文件上傳費了我1天多的時間仍然搞不定,讓我很是喪氣,網上又搜索不到與我類似的錯誤。
最終沒辦法,我想到為何用sablog調試的時候上傳附件可以成功呢?于是仔細看了下sablog的附件上傳的原代碼,參照其代碼又做了如下變化:


    
function getextension($filename) {
        return substr(strrchr($filename, "."), 1);
}

$extension=getextension($FileName);

if(move_uploaded_file($UploadFile,$UploadPath."temp.".$extension))

//unlink($UploadFile);   
unlink($UploadPath."temp.".$extension);
 


結果馬上收到效果,上傳成功!
我這里用到unlink($UploadPath."temp.".$extension);是為了馬上刪除掉上傳到空間的文件,節省空間。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安新县| 阳泉市| 信阳市| 栾城县| 博野县| 甘德县| 临武县| 肇庆市| 雅江县| 馆陶县| 容城县| 当雄县| 元阳县| 镇安县| 安阳市| 罗山县| 遵义县| 鱼台县| 桓仁| 武陟县| 桦川县| 东源县| 石家庄市| 翁源县| 北川| 定远县| 红安县| 威远县| 竹山县| 大庆市| 多伦县| 沙雅县| 姚安县| 鹿泉市| 上犹县| 洛南县| 嘉禾县| 建阳市| 连州市| 五常市| 英超|