phppost上傳文件
一、傳統的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文件上傳,提示移動文件失敗
php文件上傳,提示移動文件失敗,基本是上傳保存的目錄不可寫造成的,需要好好設置一下,下面是一個PHP文件上傳的簡單例子,僅作參考:
<formaction=""enctype="multipart/form-data"method="post"
name="uploadfile">上傳文件:<inputtype="file"name="upfile"/><br>
<inputtype="submit"value="上傳"/></form>
<?php
//print_r($_FILES["upfile"]);
if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES["upfile"];
//獲取數組裡面的值
$name=$upfile["name"];//上傳文件的文件名
$type=$upfile["type"];//上傳文件的類型
$size=$upfile["size"];//上傳文件的大小
$tmp_name=$upfile["tmp_name"];//上傳文件的臨時存放路徑
//判斷是否為圖片
switch($type){
case'image/pjpeg':$okType=true;
break;
case'image/jpeg':$okType=true;
break;
case'image/gif':$okType=true;
break;
case'image/png':$okType=true;
break;
}
if($okType){
/**
*0:文件上傳成功<br/>
*1:超過了文件大小,在php.ini文件中設置<br/>
*2:超過了文件的大小MAX_FILE_SIZE選項指定的值<br/>
*3:文件只有部分被上傳<br/>
*4:沒有文件被上傳<br/>
*5:上傳文件大小為0
*/
$error=$upfile["error"];//上傳後系統返回的值
echo"================<br/>";
echo"上傳文件名稱是:".$name."<br/>";
echo"上傳文件類型是:".$type."<br/>";
echo"上傳文件大小是:".$size."<br/>";
echo"上傳後系統返回的值是:".$error."<br/>";
echo"上傳文件的臨時存放路徑是:".$tmp_name."<br/>";
echo"開始移動上傳文件<br/>";
//把上傳的臨時文件移動到up目錄下面
move_uploaded_file($tmp_name,'up/'.$name);
$destination="up/".$name;
echo"================<br/>";
echo"上傳信息:<br/>";
if($error==0){
echo"文件上傳成功啦!";
echo"<br>圖片預覽:<br>";
echo"<imgsrc=".$destination.">";
//echo"alt="圖片預覽: 文件名:".$destination." 上傳時間:">";
}elseif($error==1){
echo"超過了文件大小,在php.ini文件中設置";
}elseif($error==2){
echo"超過了文件的大小MAX_FILE_SIZE選項指定的值";
}elseif($error==3){
echo"文件只有部分被上傳";
}elseif($error==4){
echo"沒有文件被上傳";
}else{
echo"上傳文件大小為0";
}
}else{
echo"請上傳jpg,gif,png等格式的圖片!";
}
}
?>
③ php上傳文件為什麼要建立臨時文件 請教高手
這其實是PHP出於對上傳文件的一種安全性因素的考慮,存放於臨時的目錄中、在你需要的時候再自行取出。你從臨時文件夾中取出的時候要對其進行安全性檢查(對於安全性要求較高的)
④ php curl post 上傳文件 接收文件 $_FILES 為空 是伺服器配置問題嗎還是什麼原因
原因找到了。就是$data['img']="@/tmp/1.jpg";這句話
一定要用絕對路徑。
$ch=curl_init();
define('_ROOT',str_replace("\",'/',dirname(__FILE__)));
$data['img']="@"._ROOT."/tmp/1.jpg";
curl_setopt($ch,CURLOPT_URL,"http://www.biubiu.com/huahua.php");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$result=curl_exec($ch);
curl_close($ch);
echo$result;
⑤ php上傳文件到伺服器
1、通過PHP,可以把文件上傳到伺服器。創建一個文件上傳表單,下面這個供上傳文件的 HTML 表單:
<html>
<body>
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
</body>
</html>
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"Storedin:".$_FILES["file"]["tmp_name"];
}
?>
註:通過使用 PHP 的全局數組 「$_FILES」,就可以實現從客戶計算機向遠程伺服器上傳文件。