Ⅰ php如何實現一次性上傳多個文件
<?php
$max_files=5; //最多上傳文件的個數,與 up.htm 中的 input file 控制項的個數相同
$up_ok_files=0; //成功上傳的文件個數
$up_folder="ups"; //保存上傳文件的目標文件夾
if(isset($_FILES['myfile'])){
//由於 $_FILES['myfile'] 是個數組,所以需要使用循環遍歷
for($i=0;$i<$max_files;$i++){
//如果未出錯
if($_FILES['myfile']['error'][$i]==0){
if(move_uploaded_file($_FILES['myfile']['tmp_name'][$i],$up_folder."/".$_FILES['myfile']['name'][$i])){
//成功上傳後,計數器增 1
$up_ok_files +=1;
}
else{
echo "<h4 style='color:red;'>在伺服器中保存失敗</h4>";
}
}
}
echo "<h4>成功上傳 ".$up_ok_files. " 個文件</h4>";
}
?>
如果對 $_FILES['myfile'] 這個數組的結構不清楚,那麼可以在循環之前加入這句代碼將其顯示出來:
print_r($_FILES['myfile']);
對這個數組的結構了解之後,理解上述代碼就比較容易了。
foreach循環實現
常規下,php上傳一張圖片,頁面上添加一個文件域,上傳後,得到的數組是二維數組
轉變一下,
頁面上添加多個文件域,並且他們的name屬性相同,而且是以數組形式提交(比如:name="file[]")
那麼上傳後,得到的是三維數組
而,php中,foreach循環對遍歷數組那真是完美至極
用foreach遍歷一次這個三維數組,得到的結果就又是二維數組,那麼,就和上傳一張圖片一樣一樣的了
Ⅱ 在PHP中怎麼實現文件的分類上傳
先判斷上傳文件的類型,不同的類型寫在不同的文件夾
<?
if(isset($_POST['send']) && $_POST['send']=='true'){
print_r($_FILES);
$type = $_FILES['file']['type'];
switch($type){
case 'image/jpeg':
$dfolder = 'jpg';
break;
case 'application/pdf';
$dfolder = 'pdf';
break;
case 'text/plain';
$dfolder = 'txt';
break;
}
mkdir($dfolder,0777);
if(move_uploaded_file($_FILES['file']['tmp_name'],$dfolder.'/'.$_FILES['file']['name'])){
echo 'upload success';
}
}else{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<form name="form1" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="hidden" name="send" value="true">
<input type="submit" value="submit">
</form>
</body>
</html>
<? } ?>
Ⅲ 如何實現php上傳多個文件 - 技術問答
PHP不支持一個file表單一次上傳多個文件,所以需要寫很多個type為file的放在form表單下,但是名字要相同。用一個提交按鈕,然後循環出所有的文件逐個上傳。
Ⅳ php 上傳
php的文件上傳機制是把用戶上傳的文件保存在php.ini的upload_tmp_dir定義的臨時目錄(默認是系統的臨時目錄,如:/tmp)里的一個類似phpxXuoXG的隨機臨時文件,程序執行結束,該臨時文件也被刪除。PHP給上傳的文件定義了四個變數:(如form變數名是file,而且register_globals打開)
$file #就是保存到伺服器端的臨時文件(如/tmp/phpxXuoXG )
$file_size #上傳文件的大小
$file_name #上傳文件的原始名稱
$file_type #上傳文件的類型
推薦使用:
$_FILES['file']['tmp_name']
$_FILES['file']['size']
$_FILES['file']['name']
$_FILES['file']['type']
Ⅳ php如何實現文件上傳啊
PHP一般使用POST方法上傳文件,下面是一個簡單的文件上傳示例,裡面有相關的注釋:
up.htm文件:
----------
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>UpSample</title>
</head>
<body>
<formaction="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/>
<inputtype="file"name="upfile"size="30"><br/>
<!--上傳框要設置type="file"-->
<br/>
<inputtype="submit"value="Upload">
</form>
</body>
</html>
----------
up.php文件
----------
<?php
if(is_uploaded_file($_FILES["upfile"]["tmp_name"])){
//如果有文件上傳
//is_uploaded_file--判斷文件是否是通過HTTPPOST上傳的,返回布爾值
//$_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'TheuploadedfileisnotanpdfFile!Pleaseuploadarightfile!';
}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"]."uploadedsucceed!!!";
}else{
echo"Can'tupload!!!";
}
}
}else{
echo"Fileisnotselected";
}
//需要注意的:
/*
在你的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']數組的各個值分別代表什麼
*/
?>
----------
可以看看php100裡面的視頻,其中一節就是介紹文件上傳的.:)
Ⅵ 求PHP 超大文件上傳解決方案:分片斷點上傳(一)
大文件上傳主要需要解決2個難點問題。
一個是文件的分片,一個是文件的合成。
也就是客戶端分片上傳,伺服器端量分片的文件進行合成。
文件分片,前端瀏覽器提供了分片的js函數,我們只需要調用即可。
文件上傳需要解決斷點續傳的問題,就是伺服器端需要保留和記錄每次上傳的分片,這樣可以通過順序進行文件合並。
斷點續傳是通過記錄上傳的信息,已上傳的切片不需要重復上傳,當全部切片上傳成功,伺服器端進行切片合並。
Ⅶ PHP圖片分段上傳如何實現
哦。
Ⅷ php超大文件上傳如何實現
超大是多大?
如果幾百M之內,可以通過修改php的配置文件來實現,網上很容易可以搜索到具體修改的值
不過,我更建議前端使用分段上傳的方式來實現,具體方法還是請搜索。