<?
//$_FILES['myFile']['tmp_name'] 儲存的臨時文件名,一般是系統默認
//is_uploaded_file()判斷上傳是否有內容
if(is_uploaded_file($_FILES['banner']['tmp_name'])){
//$_FILES["banner"]把上傳的內容存到一個數組中,並復制給$upfile
$upfile = $_FILES["banner"];
//可以通過print_r($upfile);查看數據的詳細內容
$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];
//switch循環用來為變數$ok賦值,如果圖片的格式$type(實際上就是文件的擴展名)滿足格式要求(循環里的case就是用來控制格式),那麼$ok = 1,以便下邊程序進行判斷
switch($type){
case 'image/pjpeg': $ok = 1 ;
break;
case 'image/jpeg': $ok = 1 ;
break;
case 'image/gif': $ok = 1 ;
break;
case 'image/png': $ok = 1 ;
break;
}
if($ok&&$error=='0'){
//move_uploaded_file(臨時文件,目標位置和文件名)
move_uploaded_file($tmp_name,'../up/'.$name);
echo "恭喜!上傳成功";
}
if(!$ok){
echo "抱歉!文件格式不正確";
}
}
?>
<form action="" method="post" name="upform" enctype="multipart/form-data">
上傳文件:
<input type="file" name="banner" size="60" class="t_input" />
<input type="submit" name="submit" value="上傳"/>
</form>
/*FORM標簽enctype屬性
表單中enctype="multipart/form-data"的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數據
*/
㈡ php上傳圖片代碼
等下,只是上傳?那麼簡單,不用寫到資料庫么?
給個反映啊,不然我怎麼幫你寫。.....
好啦號啦,我寫了:
<title>圖片上傳</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
圖片上傳:
<label>
<input type="file" name="file" id="file" />
</label>
<label>
<input type="submit" name="button" id="button" value="上傳" />
</label>
</form>
<?php
if(isset($_POST['button']))//檢測按下了上傳按鈕
{
$file=$_FILES['file']['tmp_name'];//$_FILES是二維數組,file是文件;名,tmp_name是固定的,是上傳到系統的位置
$name=date("Ymdgid").'.jpg';//上傳以後,文件的新名字,用時間來做名字
$=($file,"photo/$name");//函數,是把文件拷貝到站點下的photo文件夾中
if($)//如果拷貝成功
echo '上傳成功';
else
echo '上傳失敗';
}
?>
</body>
</html>
㈢ 誰有php網站後台添加信息時圖片上傳功能源碼,幫幫我急死我了,我有多少分就給你多少分,全部拿去。
現在就和你添加普通的數據一樣,把路徑添加到資料庫,顯示時,訪問路徑就可以了
㈣ php上傳圖片到伺服器的前端和php代碼
<?
require_once('../classfile/guid.class.php');
if(!isset($_FILES['imgFile'])){
echojson_encode(array("success"=>false,'msg'=>"NotgetImgfile"));
return;
}
$upfile=$_FILES['imgFile'];
$name=$upfile["name"];//上傳文件的文件名
$type=$upfile["type"];//上傳文件的類型
$size=$upfile["size"];//上傳文件的大小
$tmp_name=$upfile["tmp_name"];//上傳文件的臨時存放路徑
$error_cod=$upfile["error"];
if($error_cod>0){
echojson_encode(array("success"=>false,'msg'=>$error_cod));
}
$ext_file_name="";
switch($type){
case'image/pjpeg':
$okType=true;
$ext_file_name =".jpg";
break;
case'image/jpeg':
$okType=true;
$ext_file_name =".jpg";
break;
case'image/gif':
$okType=true;
$ext_file_name =".gif";
break;
case'image/png':
$okType=true;
$ext_file_name =".png";
break;
}
if(!$okType){
echojson_encode(array("success"=>false,'msg'=>"Notimage"));
return;
}
$web_root="D:".DIRECTORY_SEPARATOR."Easy2PHP5".DIRECTORY_SEPARATOR."webSiteJfz".DIRECTORY_SEPARATOR;
$photo_tmp_path=$web_root."img".DIRECTORY_SEPARATOR."userimg".DIRECTORY_SEPARATOR."temp";
$temp_file_name=creat_guid(0).$ext_file_name;
$photo_tmp_file_name=$photo_tmp_path.DIRECTORY_SEPARATOR.$temp_file_name;
$photo_tmp_file_scr="img".DIRECTORY_SEPARATOR."userimg".DIRECTORY_SEPARATOR."temp".DIRECTORY_SEPARATOR.$temp_file_name;
move_uploaded_file($tmp_name,$photo_tmp_file_name);
echojson_encode(array("success"=>true,'msg'=>"ok","file_name"=>$photo_tmp_file_name,"file_scr"=>$photo_tmp_file_scr));
//echojson_encode(array("success"=>false,'msg'=>json_encode($_FILES['imgFile'])));
return;
?>
guid.class.php//生成唯一的圖片文件名
<?
functioncreat_guid($long){
$uuid="";
if(function_exists('com_create_guid')){
$uuid=com_create_guid();
}else{
mt_srand((double)microtime()*10000);//optionalforphp4.2.0anp.
$charid=strtoupper(md5(uniqid(rand(),true)));
$hyphen=chr(45);//"-"
$uuid=chr(123)//"{"
.substr($charid,0,8).$hyphen
.substr($charid,8,4).$hyphen
.substr($charid,12,4).$hyphen
.substr($charid,16,4).$hyphen
.substr($charid,20,12)
.chr(125);//"}"
//return$uuid;
}
if(!isset($long)||$long==0){
returnsubstr($uuid,1,strlen($uuid)-2);
}else{
return$uuid;
}
}
㈤ php 文件上傳源碼
簡單 上傳什麼都可以
upload.html:
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input name="userfile1" type="file" /><br />
<input type="submit" value="上傳" />
</form>
</body>
upload.php:
<?
$uploaddir = 'uploads/'; //上傳的目錄
if(!is_dir($uploaddir)){mkdir($uploaddir,0777); }
$uploadfile1 = $uploaddir.$_FILES['userfile1']['name'];
if($_FILES['userfile1']['name']!=""){
move_uploaded_file($_FILES['userfile1']['tmp_name'], $uploadfile1);
}
?>
不明白問我好了
㈥ php如何使上傳圖片時修改圖片的名字,希望有源代碼,我的代碼如下,希望大哥大姐們能再我的代碼上修改
<?php
include("head.php");
include ("conn.php");
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"];
$error=@$upfile["error"];
if ($_FILES["tupian"]['error'] == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["tupian"]["tmp_name"];
$name = $_FILES["tupian"]["name"];
move_uploaded_file($tmp_name, "$name");//在這里進行文件改名
}
echo '<img src="' . $name . '" />';
switch($type){
case'image/pjpeg':$ok=1;break;
case'image/jpeg':$ok=1;break;
case'image/gif':$ok=1;break;
case'image/png':$ok=1;break;
}
if(@$ok&&$error=='0'){
move_uploaded_file($tmp_name,'up/'.$name);
echo "上傳成功";
}
if(@$_POST['submit']){
$sql="insert into message (id,username,title,content,latedate) values ('','$_POST[username]','$_POST[title]','$_POST[content]',now())";
if(mysql_query($sql)){
echo"添加成功";
}
}
?>
<form action="add.php" method="POST" enctype="multipart/form-data" name="upform">
用戶: <input type="text" name="username"/><br>
標題:<input type="text" name="title"/><br>
內容:<textarea name="content" cols="40" rows="5"></textarea><br>
上傳文件:<input name="upfile" type="file">
<input type="submit" value="上傳"><br><br>
<input type="submit" name="submit" value="發布留言" />
<input type="reset" value="重置">
</form>
㈦ php 編寫 實現上傳圖片至伺服器的函數
<?php
classFileUpload{
private$filepath;//指定上傳文件保存的路徑
private$allowtype=array("gif","jpg","jpeg","png");//允許上傳文件的類型
private$maxsize=1000000;//允許上傳文件的最大值
private$israndname=true;//是否隨機重命名,
private$originName;//源文件名字
private$tmpFileName;//臨時文件名字
private$fileType;//上傳後的文件類型,主要是文件後綴名
private$fileSize;//文件尺寸
private$newFileName;//新文件名字
private$errorName=0;//錯誤號
private$errorMess="";//用來提供錯誤報告
//用於對上傳文件初始化
//指定上傳路徑2·允許的類型3·限制大小4·是否使用隨機文件名稱
//讓用戶可以不用換位置傳參數,後面參數給值不用按照位置或者必須有值
function__construct($options=array()){
foreach($optionsas$key=>$val){
$key=strtolower($key);
//查看用戶參數中的數組下標是否和成員屬性名相同
//get_class_vars(get_class($this))得到類屬性的數組
//如果$key下標不在這個類屬性的數組中,則退出for循環
if(!in_array($key,get_class_vars(get_class($this)))){
continue;
}
$this->setOption($key,$val);
}
}
privatefunctionsetOption($key,$val){
//讓實例化後獲取過來的數組下標=數組下標的值,這里即為構造函數初始化
//構造函數中調用,等於把所有屬性初始化,將來可以直接訪問
$this->$key=$val;
}
privatefunctiongetError(){
$str="上傳文件{$this->originName}時出錯";
switch($this->errorNum){
case4:$str.="沒有文件被上傳";
break;
case3:$str.="文件只有部分上傳";
break;
case2:$str.="上傳文件超過了表單的值";
break;
case1:$str.="上傳文件超過phpini的值";
break;
case-1:$str.="未允許的類型";
break;
case-2:$str.="文件過大上傳文件不能超過{$this->maxsize}位元組";
break;
case-3:$str.="上傳文件失敗";
break;
case-4:$str.="建立存放上傳文件目錄失效,請重新上傳指定目錄";
break;
case-5:$str.="必須指定上傳文件的路徑";
break;
default:$str.="未知錯誤";
}
return$str.'<br>';
}
//用來檢查文件上傳路徑
privatefunctioncheckFilePath(){
if(empty($this->filepath)){
$this->setOption("errorNum",-5);
returnfalse;
}
if(!file_exists($this->filepath)||!is_writable($this->filepath)){
if(!@mkdir($this->filepath,0755)){
$this->setOption("errorNum",-4);
returnfalse;
}
}
returntrue;
}
//用來檢查上傳文件尺寸大小
privatefunctioncheckFileSize(){
if($this->fileSize>$this->maxsize){
$this->setOption("errorNum",-2);
returnfalse;
}else{
returntrue;
}
}
//用來檢查文件上傳類型
privatefunctioncheckFileType(){
if(in_array(strtolower($this->fileType),$this->allowtype)){
returntrue;
}else{
//如果$this->fileType這個類型不在$this->allowtype這個數組中,則把錯誤號變成-1
$this->setOption("errorNum",-1);
returnfalse;
}
}
privatefunctionsetNewFileName(){
if($this->israndname){
$this->setOption("newFileName",$this->preRandName());
}else{
$this->setOption("newFileName",$this->originName);
}
}
//用於檢查文件隨機文件名
privatefunctionpreRandName(){
$fileName=date("Ymdhis").rand(100,999);
return$fileName.".".$this->fileType;
}
//用來上傳一個文件
functionuploadFile($fileField){
//檢查文件路徑
$return=true;
if(!$this->checkFilePath()){
$this->errorMess=$this->getError();
returnfalse;
}//獲取文件信息
$name=$_FILES[$fileField]['name'];
$tmp_name=$_FILES[$fileField]['tmp_name'];
$size=$_FILES[$fileField]['size'];
$error=$_FILES[$fileField]['error'];
if(is_array($name)){//判斷獲取過來的文件名字是否為數組
$errors=array();//如果為數組則設置為一個數組錯誤號
for($i=0;$i<count($name);$i++){
//循環每個文件即每個類屬性賦值或者說初始化屬性值或者初始化構造函數
if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){
if(!$this->checkFileSize()||!$this->checkFileType()){
//如果上面尺寸或者類型不對,則調用這個錯誤信息
$errors[$i]=$this->getError();
$return=false;
}
}else{
//這里是
$error[]=$this->getError();
$return=false;
}
if(!$return)
$this->setFiles();
}
if($return){
$fileNames=array();
for($i=0;$i<count($name);$i++){
if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){
$this->setNewFileName();
if(!$this->File()){
$errors=$this->getError();
$return=false;
}else{
$fileNames[$i]=$this->newFileName;
}
}
}
$this->newFileName=$fileNames;
}
$this->errorMess=$errors;
return$return;
}else{
//看看$name,$tmp_name,$size,$error這些是否賦值成功否則返回FALSE
if($this->setFiles($name,$tmp_name,$size,$error)){
//看看文件大小尺寸是否匹配,不匹配返回FALSE
if($this->checkFileSize()&&$this->checkFileType()){
//獲取新文件名
$this->setNewFileName();
if($this->File()){
returntrue;
}else{
returnfalse;
}
}else{
$return=false;
}
}else{
$return=false;
}
if(!$return){
$this->errorMess=$this->getError();
return$return;
}
}
}
functionFile(){//將文件從臨時目錄拷貝到目標文件夾
if(!$this->errorNum){
//如果傳遞來的路徑有斜杠,則刪除斜杠再加上斜杠
//./upload+./
$filepath=rtrim($this->filepath,'/').'/';
//./upload+./+加上隨機後的新文件名和後綴
//這里指創建一個新的$filepath.這個文件像佔位符但是為空的
$filepath.=$this->newFileName;
//嘗試著把臨時文件$this->tmpFileName移動到$filepath下哪裡覆蓋原來的這個文件
if(@move_uploaded_file($this->tmpFileName,$filepath)){
returntrue;
}else{
$this->setOption('errorNum',-3);
returnfalse;
}
}else{
returnfalse;
}
}
//這里是為了其他剩餘的屬性進行初始化操作!
privatefunctionsetFiles($name="",$tmp_name="",$size=0,$error=0){
//這里給錯誤號賦值
$this->setOption("errorNum",$error);
//如果這里有錯誤,直接返回錯誤
if($error){
returnfalse;
}
$this->setOption("originName",$name);//復制名字為源文件名
$this->setOption("tmpFileName",$tmp_name);
$arrstr=explode(".",$name);//按點分割文件名,
//取分割後的字元串數組最後一個並轉換為小寫,賦值為文件類型
$this->setOption("fileType",strtolower($arrstr[count($arrstr)-1]));
$this->setOption("fileSize",$size);
returntrue;
}
//用來獲取上傳後的文件名
functiongetNewFileName(){
return$this->newFileName;
}
//上傳失敗,後則返回這個方法,就可以產看報告
functiongetErrorMsg(){
return$this->errorMess;
}
}
?>
============================調用====================================
<?php
require("FileUpload.class.php");
//這里實例化後賦值為數組,數組的下標要對應類中屬性的值,否則不能傳遞值,可以不分先後但是必須一致
$up=newFileUpload(array('israndname'=>'true',"filepath"=>"./upload/",'allowtype'=>array('txt','doc','jpg','gif'),"maxsize"=>1000000));
echo'<pre>';
if($up->uploadFile("pic")){
print_r($up->getNewFileName());
}else{
print_r($up->getErrorMsg());
}
echo'<pre>';
?>
-------------------HTML-------------------------
<html>
<head>
<metahttp-quive="content-type"content="text/html;charset=utf-8"></meta>
</head>
<body>
<formaction="upload.php"method="post"enctype="multipart/form-data">
shoppic:<inputtype="file"name="pic[]"><br>
<inputtype="hidden"name="MAX_FILE_SIZE"value="1000000">
<inputtype="submit"name="sub"value="添加商品">
</form>
</body>
</html>
-------------------或者HTML-------------------------
<html>
<head>
<metahttp-quive="content-type"content="text/html;charset=utf-8"></meta>
</head>
<body>
<formaction="upload.php"method="post"enctype="multipart/form-data">
//區別在這里
shoppic:<inputtype="file"name="pic[]"><br>
shoppic:<inputtype="file"name="pic[]"><br>
shoppic:<inputtype="file"name="pic[]"><br>
<inputtype="hidden"name="MAX_FILE_SIZE"value="1000000">
<inputtype="submit"name="sub"value="添加商品">
</form>
</body>
</html>
=====================================================================
以上是自己總結的 還沒有怎麼精簡加工過,僅供參考
以上不止可以上傳圖片,可以上自定義任何文件