PHP?一般使用?POST?方法上傳文件,下面是一個簡單的文件上傳示例,里面有相關的注釋:
專注于為中小企業提供成都網站制作、成都做網站、外貿營銷網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業文山州免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上1000家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
up.htm?文件:
----------
html
head
meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312"
titleUp?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']?數組的各個值分別代表什么
*/
?
----------
可以看看?php100?里面的視頻,其中一節就是介紹文件上傳的.??:)
前端頁面:
form??action=""?method="post"?enctype="multipart/form-data"
input?type="file"?name="file"
input?type="submit"?name="submit"?value="Submit"
......
/form
后臺接收頁面:
if(is_uploaded_file($_FILES['file']['tmp_name'])){
if(move_uploaded_file($_FILES['file']['tmp_name'],?'目標路徑')){
//上傳成功
}else{
//上傳失敗
}
}
剛學php時寫的一個類,可以給你參考下,你所說的功能基本上也都有。
這個用作學習還是不錯的。
?php
class?fileup{
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();
}
//設置文件上傳的參數,不設置為默認值。
function?setfilepar($par){
$pars=array('filetype','maxsize','savename');
foreach($par?as?$key=$value){
if(in_array($key,$pars)){
$this-$key=$value;
}else{
continue;
}
}
}
//檢查上傳
private?function?checkfileup(){
//判斷文件夾是否正確或文件夾是否有可寫入的權限。
if(!is_dir($this-savefilepath)||!is_writable($this-savefilepath)){
$this-uperror=8;
return?false;
}
//判斷文件名是否存在
if(is_file($this-newname)){
$this-uperror=9;
return?false;
}
//判斷上傳文件的類型是否正確。
if(!in_array(strtolower($this-filehz),$this-filetype)){
$this-uperror=-1;
return?false;
}
return?true;
}
//獲取新的文件名字
private?function?getnewname(){
$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;
}
}
//獲取錯誤信息
private?function?getuperror(){
switch($this-uperror){
case?1:?echo?'上傳文件超過了系統指定的大小';?break;
case?2:?echo?'上傳文件超過了表單中指定的大小';?break;
case?3:?echo?'文件只有部分上傳';?break;
case?4:?echo?'沒有文件上傳';?break;
case?6:?echo?'找不到上傳的文件,系統錯誤';?break;
case?7:?echo?'文件寫入失敗';?break;
case?8:?echo?'文件路徑不存在,或不可寫';?break;
case?9:?echo?'文件名已經存在,請不要重復上傳';?break;
case?-1:?echo?'不是指定上傳的文件';?break;
case?-2:?echo?'請勿使用非法途徑上傳';?break;
case?-3:?echo?'文件上傳失敗';?break;
default:?'未知錯誤';?break;
}
}
function?fileupload(){
if(!$this-checkfileup()||$this-uperror!=0){
$this-getuperror();
return?false;
}else{
if(!is_uploaded_file($_FILES[$this-upfileform]['tmp_name'])){
$this-uperror=-2;
$this-getuperror();
return?false;
}else{
if(move_uploaded_file($_FILES[$this-upfileform]['tmp_name'],$this-newname)){
return?true;
}else{
$this-uperror=-3;
return?false;
}
}
}
}
//獲取文件名
function?getname(){
return?$this-newname;
}
}
//這是給文件重命名
$one = explode(".",$_FILES["file"]["name"]);
$file_name = $_FILES["file"]["name"] = time().".".$one[1];
//這是上傳,用到move_uploaded_file,移動到:./assets/up/這個文件夾
move_uploaded_file($_FILES["file"]["tmp_name"], "./assets/up/" . $file_name);
//這是往數據庫存放的 文件名稱
$information_img = "./assets/up/" . $file_name;
當前題目:php上傳文件數據 php上傳文件導入數據庫
網頁網址:http://vcdvsql.cn/article42/ddgoohc.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、網站收錄、Google、關鍵詞優化、動態網站、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯