當前位置:首頁 » 辦公資訊 » php怎樣判斷文件已經上傳

php怎樣判斷文件已經上傳

發布時間: 2022-05-19 04:54:08

⑴ 上傳文件時,PHP如何獲取上傳文件的具體信息

在PHP中選擇或者上傳文件時,用$_POST['filename']只能取得上傳文件的文件名,但是不包含該文件所處的路徑名,如果要取得文件的全路徑名,就要用下列參數:
php:
•$_FILES["file"]["name"] - 被上傳文件的名稱
•$_FILES["file"]["type"] - 被上傳文件的類型
•$_FILES["file"]["size"] - 被上傳文件的大小,以位元組計
•$_FILES["file"]["tmp_name"] - 存儲在伺服器的文件的臨時副本的名稱
•$_FILES["file"]["error"] - 由文件上傳導致的錯誤代碼

⑵ php怎麼判斷1個文件是否正確或者上傳成功

我網路啦一下,看到獲取圖片尺寸,還可以可以獲得文件類型.
getimagesize()這個函數返回數組有4個$type就是類型

<?php
list($width,$height,$type,$attr)=getimagesize("04.jpg");
if($type==2){echo"yes";}else{echo"no";}
?>

返回的$type對應格式參數如下:
1=GIF,2=JPG,3=PNG,4=SWF,5=PSD,6=BMP,7=TIFF(intelbyteorder),8=TIFF(motorolabyteorder),9=JPC,10=JP2,11=JPX,12=JB2,13=SWC,14=IFF,15=WBMP,16=XBM。

⑶ 用php做這種上傳文件頁面並且在頁面中能顯示已經上傳的文件該怎麼做

1 上傳文件的前端頁面

<form enctype="multipart/form-data" action="伺服器地址" method="post">

<input type="file" name="file"/>

</form>

2 PHP端用$_FILES取出前端上次的文件,用move_uploaded_file把上傳的文件從臨時目錄移動到你伺服器的文件目錄下

3 用scandir掃描你的文件目錄,用is_file過濾文件,你頁面上的文件大小,可以通過filesize獲取,上傳時間就是創建時間用filemtime

4 發起刪除用unlink刪除 發起下載就讀取文件然後修改header返回即可

⑷ thinkphp 如何判斷是否有上傳文件,如果沒有上傳文件,那麼就不上傳,只保存其它信息,著急!謝謝!

在上傳之前添加
這是單個的文件上傳
<input type="file" name="images" id="images" />
if($_FILES['images']['name']){ //images 是你上傳的名稱

}
多個的上傳判斷
<input type="file" name="images[]" id="images" />
if($_FILES['images']['name']){ //images[] 是你上傳的名稱 判斷上傳的是否為空

}
如果你還不知道的話可以使用
print_r($_FILES); 這個是顯示所有上傳的相關信息
希望對你有幫助!

⑸ 如何在php上實現文件上傳功能

PHP 一般使用 POST 方法上傳文件,下面是一個簡單的文件上傳示例,裡面有相關的注釋:
up.htm 文件:
----------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Up Sample</title>
</head>
<body>
<form action="up.php" method="post" enctype="multipart/form-data">
<!--備注:表單中 enctype="multipart/form-data " 的意思,是設置表單的 MIME 編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了 multipart/form-data ,才能完整的傳遞文件數據,進行下面的操作,並且 method 要設置為 "post"-->
File:<br />
<input type="file" name="upfile" size="30"><br />

<!--上傳框要設置 type="file"-->

<br />
<input type="submit" value="Upload">
</form>
</body>
</html>
----------
up.php 文件
----------
<?php
if (is_uploaded_file($_FILES["upfile"]["tmp_name"])){

//如果有文件上傳
//is_uploaded_file -- 判斷文件是否是通過 HTTP POST 上傳的,返回布爾值
//$_FILES['upfilename']['...'],其中的 'upfilename' 即為上傳框的 name 屬性
//$_FILES['upfile']['tmp_name'] -- 文件被上傳後在服務端儲存的臨時文件名,一般是系統默認
if(!eregi('pdf', $_FILES['upfile']['type'])){

//我們這里假設你要上傳一個 pdf 文件
//if(!eregi('pdf', $_FILES['upfile']['type'])) 這個是判斷上傳文件類型的,是不是 pdf 文件,當然,若是想判斷是否是 jpg 文件的話,將 pdf 改成 jpg 就可以了,即 if(!eregi('jpg', $_FILES['upfile']['type']))
//$_FILES['upfile']['type'] 是文件的 MIME 類型,如果瀏覽器提供此信息的話。例如「image/gif」
echo 'The uploaded file is not an pdf File! Please upload a right file!';
}else{
$filename = $_FILES['upfile']['name'];
//$filename = $_FILES['upfile']['name'],這里是指定上傳後的文件名,這里使用的仍是原來的文件名字,($_FILES['upfile']['name'] 是原始文件的名字)
if(move_uploaded_file($_FILES["upfile"]["tmp_name"], dirname(__FILE__)."/upload_file/".$filename)){

//這里就是上傳文件
//dirname(__FILE__)."/upload_file/".$file_name -- 指定上傳的目標文件,假設你要上傳的目標文件夾upload_file 是和當前文件(upload.php)在同一文件夾下
//chmod(dirname(__FILE__)."/upload_file/". $file_name, 0444);
//上面注釋掉的是用來改變上傳後文件的屬性,444 即只有執行和讀的許可權(看情況加上)
echo $_FILES["upfile"]["name"] . " uploaded succeed!!!";

}else{
echo "Can't upload!!!";
}
}
}else{
echo "File is not selected";
}
//需要注意的:
/*
在你的 up.php 同級目錄下建立 upload_file 文件夾,來存放上傳的文件
在上傳之前要看一下 php 的配置文件:php.ini 中的三處設置
1.是否允許文件上傳:( file_uploads = On )
2.文件上傳的最大 size:( upload_max_filesize )
3.post 的最大 size ( post_max_size ) 這個大小設置成和 uplod_max_filesize 一樣大或比 uplod_max_filesize 大
*/
/*
這只是很簡單的一個文件上傳的例子,為了幫助理解,只是判斷了一下上傳文件的類型,還可以使用 if 語句來判斷上傳文件的大小($_FILES['upfile']['type'])),並進行提示控制等,相關可以查閱 $_FILE['upfile'] 數組的各個值分別代表什麼
*/
?>

⑹ php 判斷是否有文件上傳

使用系統變數:$_FILES[]
$_FILES

經由 HTTP POST 文件上傳而提交至腳本的變數。類似於舊數組 $HTTP_POST_FILES
數組(依然有效,但反對使用)。詳細信息請參閱 POST 方法上傳。

⑺ PHP中怎麼判斷上傳文件是否從復,

一般情況下上傳文件都會重命名,命名成不會重名的文件名,比如重命名為:
$newName = date("YmdHis").md5(mt_rand(10000,99999));
這樣即增加了時間還加上了加密後的隨機數,就沒有重名的可能了。
當然在文件名在加源文件名什麼的就看你自己需要了
對了,還不要忘記獲取並添加後綴名哦~
所以答案就是根本不用去是否重名的判斷。

⑻ php怎麼判斷1個文件是否正確或者上傳成功

$fileType = 'png';break;default:echo 'unknown';}echo 'this is a(an) '.$fileType.' file:'.$typeCode;?>網路過來的,應該是判斷文件頭二樓:安裝fileinfo 擴展 使用finfo_file 函數 手冊上的例子 復制內容到剪貼板代碼:<?php $finfo = finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension

⑼ php中的文件上傳處理

PHP上傳文件非常簡單,你需要一個上傳的HTML文件(<FORM>),一個保存文件的PHP文件(保存),一個查詢上傳文件清單的工具。

真正實現完整功能的上傳和管理需要使用資料庫,我的網站俱樂部裡面上傳文件一開放很快就傳了幾萬個文件。

最簡單的方法不用資料庫,可以用一個PHP文件實現,這個文件列出指定目錄下的所有文件,然後提供一個上傳的FORM,最後檢測是否提交了FORM數據,是就保存文件到指定位置。

PHP手冊第39章有關於處理這些問題的說明,我復制粘貼如下:


上一頁V.特點下一頁

--------------------------------------------------------------------------------

第39章文件上傳處理
目錄
POST方法上傳
錯誤信息說明
常見缺陷
上傳多個文件
對PUT方法的支持
POST方法上傳
本特性可以使用戶上傳文本和二進制文件。用PHP的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳後怎樣處理。

PHP能夠接受任何來自符合RFC-1867標準的瀏覽器(包括NetscapeNavigator3及更高版本,打了補丁的MicrosoftInternetExplorer3或者更高版本)上傳的文件。

相關的設置:請參閱php.ini的file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size以及max_input_time設置選項。

請注意PHP也支持PUT方法的文件上傳,NetscapeComposer和W3C的Amaya客戶端使用這種方法。請參閱對PUT方法的支持以獲取更多信息。

例39.1.文件上傳表單

可以如下建立一個特殊的表單來支持文件上傳:<!--Thedataencodingtype,enctype,MUSTbespecifiedasbelow-->
<formenctype="multipart/form-data"action="__URL__"method="POST">
<!--MAX_FILE_-->
<inputtype="hidden"name="MAX_FILE_SIZE"value="30000"/>
<!--$_FILESarray-->
Sendthisfile:<inputname="userfile"type="file"/>
<inputtype="submit"value="SendFile"/>
</form>


以上範例中的__URL__應該被換掉,指向一個真實的PHP文件。

MAX_FILE_SIZE隱藏欄位(單位為位元組)必須放在文件輸入欄位之前,其值為接收文件的最大尺寸。這是對瀏覽器的一個建議,PHP也會檢查此項。在瀏覽器端可以簡單繞過此設置,因此不要指望用此特性來阻擋大文件。實際上,PHP設置中的上傳文件最大值是不會失效的。但是最好還是在表單中加上此項目,因為它可以避免用戶在花時間等待上傳大文件之後才發現文件過大上傳失敗的麻煩。

注意:要確保文件上傳表單的屬性是enctype="multipart/form-data",否則文件上傳不了。

全局變數$_FILES自PHP4.1.0起存在(在更早的版本中用$HTTP_POST_FILES替代)。此數組包含有所有上傳的文件信息。

以上範例中$_FILES數組的內容如下所示。我們假設文件上傳欄位的名稱如上例所示,為userfile。名稱可隨意命名。

$_FILES['userfile']['name']
客戶端機器文件的原名稱。

$_FILES['userfile']['type']
文件的MIME類型,如果瀏覽器提供此信息的話。一個例子是「image/gif」。不過此MIME類型在PHP端並不檢查,因此不要想當然認為有這個值。

$_FILES['userfile']['size']
已上傳文件的大小,單位為位元組。

$_FILES['userfile']['tmp_name']
文件被上傳後在服務端儲存的臨時文件名。

$_FILES['userfile']['error']
和該文件上傳相關的錯誤代碼。此項目是在PHP4.2.0版本中增加的。

文件被上傳後,默認地會被儲存到服務端的默認臨時目錄中,除非php.ini中的upload_tmp_dir設置為其它的路徑。服務端的默認臨時目錄可以通過更改PHP運行環境的環境變數TMPDIR來重新設置,但是在PHP腳本內部通過運行putenv()函數來設置是不起作用的。該環境變數也可以用來確認其它的操作也是在上傳的文件上進行的。

例39.2.使文件上傳生效

請查閱函數is_uploaded_file()和move_uploaded_file()以獲取進一步的信息。以下範例處理由表單提供的文件上傳。

<?php
//InPHPversionsearlierthan4.1.0,$HTTP_POST_FILESshouldbeusedinstead
//of$_FILES.

$uploaddir='/var/www/uploads/';
$uploadfile=$uploaddir.basename($_FILES['userfile']['name']);

echo'<pre>';
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
echo"Fileisvalid,andwassuccessfullyuploaded.\n";
}else{
echo"Possiblefileuploadattack!\n";
}

echo'Hereissomemoredebugginginfo:';
print_r($_FILES);

print"</pre>";

?>

接受上傳文件的PHP腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用$_FILES['userfile']['size']變數來排除過大或過小的文件,也可以通過$_FILES['userfile']['type']變數來排除文件類型和某種標准不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在PHP端並不檢查。自PHP4.2.0起,還可以通過$_FILES['userfile']['error']變數來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要麼將該文件從臨時目錄中刪除,要麼將其移動到其它的地方。

如果表單中沒有選擇上傳的文件,則PHP變數$_FILES['userfile']['size']的值將為0,$_FILES['userfile']['tmp_name']將為空。

如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。

例39.3.上傳一組文件

PHP的HTML數組特性甚至支持文件類型。

<formaction=""method="post"enctype="multipart/form-data">
<p>Pictures:
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="submit"value="Send"/>
</p>
</form>


<?php
foreach($_FILES["pictures"]["error"]as$key=>$error){
if($error==UPLOAD_ERR_OK){
$tmp_name=$_FILES["pictures"]["tmp_name"][$key];
$name=$_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name,"data/$name");
}
}
?>

--------------------------------------------------------------------------------
上一頁上一級下一頁
38.處理XForms起始頁錯誤信息說明

⑽ php 文件上傳

<?php
//$uploaddir = "D:My Documents/phpnow/htdocs/mysite/_notes/upload/";原代碼,路徑少了個斜杠,按道理是錯誤的.
$uploaddir = "D:/My Documents/phpnow/htdocs/mysite/_notes/upload/";//設置文件保存目錄 注意包含/
$type=array("jpg","gif","bmp","jpeg","png");//設置允許上傳文件的類型
// 下面這句,程序中都沒有用到,估計是用來做預覽圖片的瀏覽路徑的.
//因為,如果是在伺服器上面,使用$uploaddir這種本地路徑(相對於http://這種網路路徑)的地址來
//訪問是訪問不到的,所以應該改成這樣如下,相應的圖片的預覽路徑也有一點改動
$patch="http://127.0.0.1/mysite/_notes/upload/";//程序所在路徑
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}//獲取文件後綴名函數
function random($length)
{
$hash = 'CR-';
$chars = '';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i < $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
$a=strtolower(fileext(@$_FILES['file']['name']));//生成隨機文件名函數
if(!in_array(strtolower(fileext(@$_FILES['file']['name'])),$type))
{
$text=implode(",",$type);
echo "您只能上傳以下類型文件: ",$text,"<br>";
}//判斷文件類型
else
{
$filename=explode(".",$_FILES['file']['name']);
do
{
$filename[0]=random(6); //設置隨機數長度
$name=implode(".",$filename); //$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
//原代碼是先移動文件(已經移動,原文件不存在了),後判斷是否是通過上傳的文件(當然了,文件都沒了,怎麼還會是true呢.),
if(is_uploaded_file(@$_FILES['file']['tmp_name'])&&move_uploaded_file(@$_FILES['file']['tmp_name'],$uploadfile)){
//輸出圖片預覽,注意img標簽的src,有改動
echo "<center>您的文件已經上傳完畢 上傳圖片預覽: </center><br><center><img src='{$patch}{$name}'></center>";
echo"<br><center><a href='javascript:history.go(-1)'>繼續上傳</a></center>";
}else{
echo "上傳失敗!";
}
}
?>

熱點內容
馬路上汽車的噪音在多少分貝 發布:2023-08-31 22:08:23 瀏覽:1206
應孕棒多少錢一盒 發布:2023-08-31 22:08:21 瀏覽:905
標准養老金一年能領多少錢 發布:2023-08-31 22:05:05 瀏覽:1213
湖北通城接網線多少錢一個月 發布:2023-08-31 21:59:51 瀏覽:1290
開隨車吊車多少錢一個月 發布:2023-08-31 21:55:06 瀏覽:990
京東付尾款怎麼知道前多少名 發布:2023-08-31 21:52:58 瀏覽:1359
在學校租鋪面一個月要多少錢 發布:2023-08-31 21:52:09 瀏覽:1407
2寸有多少厘米 發布:2023-08-31 21:50:34 瀏覽:1034
知道電壓如何算一小時多少電 發布:2023-08-31 21:46:20 瀏覽:1105
金手鐲54號圈周長是多少厘米 發布:2023-08-31 21:44:28 瀏覽:1294