phpuploadphp
『壹』 thinkphp upload怎麼設置路徑
假如保存到則喚項目下/Uploads/uploadfile下伍啟
$congfig=array(
'rootPath' => './Uploads/', //保存根路徑
'savePath' => 'uploadfile/', //保存路腔盯如徑
);
new \Think\Upload($config);
『貳』 求一段php上傳任意文件的代碼
PHP 文件上傳 是通過 PHP,可以把文件上傳到伺服器。
1首先創建一個文件上傳表單
允許用戶從表單上傳文件是非常有用的。
請看下面這個供上傳文件的 HTML 表單:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
請留意如下有關此表單的信息:
<form> 標簽的 enctype 屬性規定了在提交表單時要使用哪種內容類型。在表單需要二進制數據時,比如文件內容,請使用 "multipart/form-data"。
<input> 標簽的 type="file" 屬性規定了應該把輸入作為文件來處理。舉例來說,當在瀏覽器中預覽時,會看到輸入框旁邊有一個瀏覽按鈕。
注釋:允許用戶上傳文件是一個巨大的安全風險。請僅僅允許可信的用戶執行文件上傳操作。
2:創建上傳腳本
"upload_file.php" 文件含有供上傳文件的代碼:
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
通過使用 PHP 的全局數組 $_FILES,你可以從客戶計算機向遠程伺服器上傳文件。
第一個參數是表單的 input name,第二個下標可以是 "name", "type", "size", "tmp_name" 或 "error"。就像這樣:
$_FILES["file"]["name"] - 被上傳文件的名稱
$_FILES["file"]["type"] - 被上傳文件的類型
$_FILES["file"]["size"] - 被上傳文件的大小,以位元組計
$_FILES["file"]["tmp_name"] - 存儲在伺服器的文件的臨時副本的名稱
$_FILES["file"]["error"] - 由文件上傳導致的錯誤代碼
這是一種非常簡單文件上傳方式。不需要考慮文件的上傳格式。
『叄』 php中上傳文件的方法有多少種
一、傳統的php寫的上傳類。
寫一個php的上傳類,這個方法用到的知識全部是php的,而且技術的難點也不多。
<form method="post" action="upload.php" enctype="multipart/form-data">
<table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">//隱藏域。這里name必須設置成MAX_FILE_SIZE,其值就是上傳文件的最大長度,單位是B,這里我限製成2M
<input name="file" type="file" value="瀏覽" >
< input type="submit" value="上傳" name="B1">
</table>
</form>
服務端利用php的$_FILES['file']['name']來獲取文件後綴名,具體的代碼自己查找資料看看,這里就不多說了。
總結;這個方法可以用來上傳小於2M的文件或者是圖片,基本的功能可以實現。
二、利用uploadify插件
這個是利用jQuery的上傳插件,上傳可以帶進度條,容易配置。
總結:可以上傳一些大文件,和圖片,而且帶進度條,可以多文件上傳,在WEB中會經常用。
三、利用網路的webupload
WebUploader 是由 Bai FEX 團隊開發的一款以 HTML5 為主,FLASH 為輔的現代文件上傳組件。在現代的瀏覽器裡面能充分發揮 HTML5 的優勢,同時又不摒棄主流IE瀏覽器,沿用原來的 FLASH 運行時,兼容 IE6+,iOS 6+, Android 4+。採用大文件分片並發上傳,極大的提高了文件上傳效率。
四、swfupload的插件
這是一個jquery的上傳插件,功能也非常強大,開發也比較容易,網上有很多的資料,可以自行查找。
『肆』 php文件上傳RAR的mime類型
首先要建立一個文件夾和兩個文件,具體如下:
File ——————文件夾,用於存放上傳的文件。
choose.htm ——————htm文件,用於選擇上傳的文件。
upload.php ——————php文件,用於處理上傳的文件。
第一步:建立 File 文件夾。
第二步:建立 choose.htm 文件,代碼如下:
____________________________________________________________________________________________________________
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FLIE_SIZE" value="1000000" />
上傳此文件:
<input name="userfile" type="file" id="userfile" />
<input type="submit" name="Submit" value="上傳" />
</form>
____________________________________________________________________________________________________________
第三步:建立 upload.php 文件,代碼如下:
____________________________________________________________________________________________________________
<?php
//上傳文件錯誤判定
if($_FILES['userfile']['error']>0)
{
echo '錯誤:';
switch($_FILES['userfile']['error'])
{
case 1: echo '文件尺寸超過允許的最大上傳限度!'; break;
case 2: echo '文件尺寸超過允許的最大上傳限度!'; break;
case 3: echo '只有部分文件被上傳!'; break;
case 4: echo '沒有任何文件被上傳!'; break;
}
exit;
}
//上傳文件格式判定
if($_FILES['userfile']['type'] !='text/plain')
{
echo '錯誤:非法文件格式!';
exit;
}
//設置文件保存路徑
$upfile = './File/' . $_FILES['userfile']['name'];
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
if(!move_uploaded_file($_FILES['userfile']['tmp_name'],$upfile))
{
echo '錯誤:沒有將文件移動到指定目錄!';
exit;
}
}
else
{
echo '錯誤:可能文件上傳被攻擊!文件名:';
echo $_FILES['userfile']['name'];
}
echo '文件上傳成功!';
//格式化上傳的文件
$fp = fopen($upfile,'r');
$contents = fread($fp,filesize($upfile));
fclose($fp);
$contents = strip_tags($contents);
$fp = fopen($upfile,'w');
fwrite($fp,$contents);
fclose($fp);
//顯示上傳文件內容
echo '上傳文件的內容為:';
echo $contents;
?>
____________________________________________________________________________________________________________
測試一下:
1、建立一個 123.txt 文件,裡面輸入一些純文本字元,比如 abc,上傳成功!
2、我們再來試看其他後綴名,如.exe,.php,.htm之類的,只要非txt,就將導致失敗!
3、把任意一個大於1M的文件名改為123.txt並上傳,我們將發現超過限制大小的文件將導致上傳失敗!
4、將123.txt的內容改掉,刪除所有內容,輸入 <html>HTML code</html>,保存並上傳,我們會發現上傳失敗!
5、將123.txt的內容改掉,刪除所有內容,輸入 <?php echo'PHP code'; ?>保存並上傳,我們會發現 File 文件夾中有一個0位元組的,沒有任何內容的123.txt文件!