PHP?一般使用?POST?方法上傳文件,下面是一個簡單的文件上傳示例,里面有相關(guān)的注釋:
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)文山州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
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?"?的意思,是設(shè)置表單的?MIME?編碼。默認(rèn)情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了?multipart/form-data?,才能完整的傳遞文件數(shù)據(jù),進(jìn)行下面的操作,并且?method?要設(shè)置為?"post"--
File:br?/
input?type="file"?name="upfile"?size="30"br?/
!--上傳框要設(shè)置?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']?--?文件被上傳后在服務(wù)端儲存的臨時文件名,一般是系統(tǒng)默認(rèn)
if(!eregi('pdf',?$_FILES['upfile']['type'])){
//我們這里假設(shè)你要上傳一個?pdf?文件
//if(!eregi('pdf',?$_FILES['upfile']['type']))?這個是判斷上傳文件類型的,是不是?pdf?文件,當(dāng)然,若是想判斷是否是?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?--?指定上傳的目標(biāo)文件,假設(shè)你要上傳的目標(biāo)文件夾upload_file?是和當(dāng)前文件(upload.php)在同一文件夾下
//chmod(dirname(__FILE__)."/upload_file/".?$file_name,?0444);
//上面注釋掉的是用來改變上傳后文件的屬性,444?即只有執(zhí)行和讀的權(quán)限(看情況加上)
echo?$_FILES["upfile"]["name"]?.?"?uploaded?succeed!!!";
}else{
echo?"Can't?upload!!!";
}
}
}else{
echo?"File?is?not?selected";
}
//需要注意的:
/*
在你的?up.php?同級目錄下建立?upload_file?文件夾,來存放上傳的文件
在上傳之前要看一下?php?的配置文件:php.ini?中的三處設(shè)置
1.是否允許文件上傳:(?file_uploads?=?On?)
2.文件上傳的最大?size:(?upload_max_filesize?)
3.post?的最大?size?(?post_max_size?)?這個大小設(shè)置成和?uplod_max_filesize?一樣大或比?uplod_max_filesize?大
*/
/*
這只是很簡單的一個文件上傳的例子,為了幫助理解,只是判斷了一下上傳文件的類型,還可以使用?if?語句來判斷上傳文件的大?。?_FILES['upfile']['type'])),并進(jìn)行提示控制等,相關(guān)可以查閱?$_FILE['upfile']?數(shù)組的各個值分別代表什么
*/
?
----------
可以看看?php100?里面的視頻,其中一節(jié)就是介紹文件上傳的.??:)
前端頁面:
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'],?'目標(biāo)路徑')){
//上傳成功
}else{
//上傳失敗
}
}
剛學(xué)php時寫的一個類,可以給你參考下,你所說的功能基本上也都有。
這個用作學(xué)習(xí)還是不錯的。
?php
class?fileup{
private?$savefilepath;????//保存路徑
private?$filetype=array('gif','jpg','jpeg','png');?//文件類型
private?$maxsize=1000000;???//上傳最大的尺寸?默認(rèn)值設(shè)置為1M
private?$savename=true;???//是否默認(rèn)隨機(jī)名稱
private?$upfileform;?//上傳文件表單的name值
//以下是不可以修改的成員屬性
private?$tmpname;?//上傳的臨時文件名
private?$upfilename;?//上傳文件的名稱
private?$uperror;
private?$newname;?//新的文件名
//private?$upfiletype;?//上傳文件的類型
private?$upfilesize;?//上傳文件的大小。
private?$filehz;??//文件名的擴(kuò)展名。
//構(gòu)造方法
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();
}
//設(shè)置文件上傳的參數(shù),不設(shè)置為默認(rèn)值。
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(){
//判斷文件夾是否正確或文件夾是否有可寫入的權(quán)限。
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?'上傳文件超過了系統(tǒng)指定的大小';?break;
case?2:?echo?'上傳文件超過了表單中指定的大小';?break;
case?3:?echo?'文件只有部分上傳';?break;
case?4:?echo?'沒有文件上傳';?break;
case?6:?echo?'找不到上傳的文件,系統(tǒng)錯誤';?break;
case?7:?echo?'文件寫入失敗';?break;
case?8:?echo?'文件路徑不存在,或不可寫';?break;
case?9:?echo?'文件名已經(jīng)存在,請不要重復(fù)上傳';?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);
//這是往數(shù)據(jù)庫存放的 文件名稱
$information_img = "./assets/up/" . $file_name;
當(dāng)前題目:php上傳文件數(shù)據(jù) php上傳文件導(dǎo)入數(shù)據(jù)庫
網(wǎng)頁網(wǎng)址:http://www.rwnh.cn/article42/ddgoohc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站收錄、Google、關(guān)鍵詞優(yōu)化、動態(tài)網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)