pictures:
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寫的上傳類。
寫一個php的上傳類,這個方法用到的知識全部是php的,而且技術的難點也不多。
//隱藏域。這里name必須設置成max_file_size,其值就是上傳文件的最大長度,單位是b,這里我限製成2m
< input type="submit" value="上傳" name="b1">
服務端利用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如何上傳文件
$f_type=strtolower("swf,rar,jpg,zip,7z,iso,gif,exe,rmvb");//設置可上傳的文件類型
if (!is_uploaded_file($file) || ($_files['photoupload']['size'] > 20000 * 1024 * 1024) )
{
$error = 'please upload only files smaller than 2mb!';
}
$f_name=$_files['photoupload']['name'];
$tmp_type=substr(strrchr($f_name,"."),1);//獲取文件擴展名
$tmp_type=strtolower($tmp_type);
if(!stristr($f_type,$tmp_type)){
$error="對不起,不能上傳格式為:".$tmp_type."的文件:".$f_name;
}
if(move_uploaded_file($_files['photoupload']['tmp_name'], $uploadfile)){
$result['result'] = 'success';
$result['size'] =$f_name."文件上傳成功";
}
else{
$result['result'] = 'failed';
$result['error'] =$f_name."上傳失敗";
}
❺ php 上傳文件
剛學php時寫的一個類,可以給你參考下,你所說的功能基本上也都有。
這個用作學習還是不錯的。
classfileup{
private$savefilepath;//保存路徑
private$filetype=array('gif','jpg','jpeg','png');//文件類型
private$maxsize=1000000;//上傳最大的尺寸默認值設置為1m
private$savename=true;//是否默認隨機名稱
private$upfileform;//上傳文件表單的name值
//以下是不可以修改的成員屬性
private$tmpname;//上傳的臨時文件名
private$upfilename;//上傳文件的名稱
private$uperror;
private$newname;//新的文件名
//private$upfiletype;//上傳文件的類型
private$upfilesize;//上傳文件的大小。
private$filehz;//文件名的擴展名。
//構造方法
function__construct($upfileform,$savefilepath='./upload/'){
$this->upfileform=$upfileform;
$this->savefilepath=rtrim($savefilepath,'/');
$this->tmpname=$_files[$upfileform]['tmp_name'];
$this->upfilename=$_files[$upfileform]['name'];
$this->upfilesize=$_files[$upfileform]['size'];
$this->uperror=$_files[$upfileform]['error'];
$this->getnewname();
}
//設置文件上傳的參數,不設置為默認值。
functionsetfilepar($par){
$pars=array('filetype','maxsize','savename');
foreach($paras$key=>$value){
if(in_array($key,$pars)){
$this->$key=$value;
}else{
continue;
}
}
}
//檢查上傳
privatefunctioncheckfileup(){
//判斷文件夾是否正確或文件夾是否有可寫入的許可權。
if(!is_dir($this->savefilepath)||!is_writable($this->savefilepath)){
$this->uperror=8;
returnfalse;
}
//判斷文件名是否存在
if(is_file($this->newname)){
$this->uperror=9;
returnfalse;
}
//判斷上傳文件的類型是否正確。
if(!in_array(strtolower($this->filehz),$this->filetype)){
$this->uperror=-1;
returnfalse;
}
returntrue;
}
//獲取新的文件名字
privatefunctiongetnewname(){
$tmp=explode('.',$this->upfilename);
$this->filehz=$tmp[count($tmp)-1];
if(is_bool($this->savename)){
if($this->savename){
$this->newname=$this->savefilepath.'/'.date('ymdhis').rand(10000,99999).'.'.$this->filehz;
}else{
$this->newname=$this->savefilepath.'/'.$this->upfilename;
}
}else{
$this->newname=$this->savefilepath.'/'.$this->savename.'.'.$this->filehz;
}
}
//獲取錯誤信息
privatefunctiongetuperror(){
switch($this->uperror){
case1:echo'上傳文件超過了系統指定的大小';break;
case2:echo'上傳文件超過了表單中指定的大小';break;
case3:echo'文件只有部分上傳';break;
case4:echo'沒有文件上傳';break;
case6:echo'找不到上傳的文件,系統錯誤';break;
case7:echo'文件寫入失敗';break;
case8:echo'文件路徑不存在,或不可寫';break;
case9:echo'文件名已經存在,請不要重復上傳';break;
case-1:echo'不是指定上傳的文件';break;
case-2:echo'請勿使用非法途徑上傳';break;
case-3:echo'文件上傳失敗';break;
default:'未知錯誤';break;
}
}
functionfileupload(){
if(!$this->checkfileup()||$this->uperror!=0){
$this->getuperror();
returnfalse;
}else{
if(!is_uploaded_file($_files[$this->upfileform]['tmp_name'])){
$this->uperror=-2;
$this->getuperror();
returnfalse;
}else{
if(move_uploaded_file($_files[$this->upfileform]['tmp_name'],$this->newname)){
returntrue;
}else{
$this->uperror=-3;
returnfalse;
}
}
}
}
//獲取文件名
functiongetname(){
return$this->newname;
}
}
❻ 如何讓php上傳超大文件
1.在php.ini修改上傳文件的大小
打開php.ini,首先找到(前4個夠用了)
file_uploads = on ;是否允許通過http上傳文件的開關。默認為on即是開
upload_tmp_dir ;文件上傳至伺服器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize = 8m ;望文生意,即允許上傳文件大小的最大值。默認為2m
post_max_size = 8m ;指通過表單post給php的所能接收的最大值,包括表單里的所有值。默認為8m
一般地,設置好上述四個參數後,上傳<=8m的文件是不成問題,在網路正常的情況下。
但如果要上傳>8m的大體積文件,只設置上述四項還一定能行的通。
進一步配置以下的參數
max_execution_time = 600 ;每個php頁面運行的最大時間值(秒),默認30秒
max_input_time = 600 ;每個php頁面接收數據所需的最大時間,默認60秒
memory_limit = 8m ;每個php頁面所吃掉的最大內存,默認8m
把上述參數修改後,在網路所允許的正常情況下,就可以上傳大體積文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 32m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size = 32m
2如果還是解決不了.
nginx修改上傳文件大小限制
在 /etc/nginx/conf.d/下 找到你的配置文件 在location中加上這樣一段代碼
location / {
root html;
index index.html index.htm;
client_max_body_size 5000m;
}
切記!!!修改完配置文件要重啟!重啟!重啟!
❼ 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,"
";
}//判斷文件類型
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 "
您的文件已經上傳完畢 上傳圖片預覽:
";
echo"
";
}else{
echo "上傳失敗!";
}
}
?>
❽ php上傳文件代碼,怎麼寫
2樓和3樓給你的回答就跟sb一樣,自己比你還菜,就瞎扯。我問問題的時候就是被這些sb不停騷擾導致最後無人回答了。
上傳代碼看這里(帶重命名的):
文件上傳到伺服器需要一些時間
$uploaddir="/"; //為目錄變數指定目錄位置
$uploaderror=$_files['upload']['error'];
$filename=$_files['upload']['name'];
$filetemname=$_files['upload']['tmp_name'];
$filesize=$_files['upload']['size'];
$newname=$_post['newname'];
function upload(){
global $uploaddir,$uploaderror,$filename,$filetemname,$filesize,$filesuffix,$newname;
if($newname){ //如果需要被更新文件名
$filerename=$newname.".".pathinfo($filename,pathinfo_extension); //採用新文件名 獲取文件名後綴
}else{ //如果不需要更新文件名
$filerename=$filename; //定義文件存儲位置,並在文件名前加一組隨機數字
}
if($uploaderror>0){ //0表示沒有錯誤發生,文件上傳成功
echo"錯誤:";
switch($uploaderror){
case 1:echo"上傳文件超過配置文件規定值。";break; //1表示上傳的文件超過了php.ini中upload_max_filesize選項限制的值
case 2:echo"上傳文件超過表單約定值。";break; //2表示上傳文件的大小超過了 html 表單中 max_file_size 選項指定的值。
case 3:echo"上傳文件不完全。";break; //3表示文件只有部分被上傳。
case 4:echo"沒有上傳文件。";break; //4表示沒有文件被上傳。
}
}else{
if(is_uploaded_file($filetemname)){ //確認文件通過http post上傳
if(!move_uploaded_file($filetemname,($uploaddir.$filerename))){ //如果無法將上傳的文件移動到新位置
echo"文件上傳失敗,請重新上傳。";
}else{ //否則返回成功信息
echo"文件上傳成功!
".date("y-m-d h:i:s")."
上傳文件:".$filename."
文件大小:".number_format(($filesize/1024/1024),2)."mb"."
重命名為:".$filerename;
}
}else{ //如果不是通過http post方式上傳,則提示非法信息
echo"文件".$filename."不合法!";
}
}
}
if(!empty($filename)){
if(is_dir($uploaddir)){ //如果目錄存在
upload(); //則執行上傳流程
}else{ //如果目錄不存在
mkdir($uploaddir); //則創建目錄
upload(); //再執行上傳流程
}
}else{
echo"請選擇需要上傳的文件。";
}
?>
❾ php上傳文件
你確定你下面展示的php代碼是d:\php\phpnow-1.5.6\htdocs\dz\upload\source\plugin\autosend\upload.php的這個文件?
❿ 怎麼將php文件上傳到伺服器上
創建一個文件上傳表單
允許用戶從表單上傳文件是非常有用的。
請看下面這個供上傳文件的 html 表單:
請留意如下有關此表單的信息: