首頁 後端開發 php教程 php实现文件下传的例子(附详细源码)

php实现文件下传的例子(附详细源码)

Jun 13, 2016 pm 12:53 PM
gt img lt quot url

php实现文件上传的例子(附详细源码)

今天用PHP做了个文件上传工具,功能还是很完善滴,如下:

每个图片上传之后,都有自己的地址,改变原图位置或重命名时,将不会重复上传。

一、功能:

A:文件分类上传

B:生成相应的文件夹,如本例,选择团,生成文件夹tuan

C:点击图片,查看详细

二、HTML代码:

	<div id="container">
		<fieldset>
			<legend class="img"><img  src="/static/imghw/default1.png" data-src="css/logo.png" class="lazy"    style="max-width:90%" alt=" php实现文件下传的例子(附详细源码) " ></legend>
			<form action="" method="post" name="myform" id="myform" onsubmit="return false" enctype="multipart/form-data">
			    <strong>亲,请选择你要上传的文件</strong>
				<div class="file"><input type="file" id="fileToUpload" name="fileToUpload"></div>
				<select id="product">
               		<option value="" if echo> >请选择产品</option>
               		<option value="tuan" if echo> >团</option>			
               	</select>
               	<button id="postBtn">Submit</button>
			</form>
			<div id="info"></div>
			<div style="position:relative; top:40px; left:20px;">
				<a id="loading" style="display:none"><img  src="/static/imghw/default1.png" data-src="css/loading.gif" class="lazy"    style="max-width:90%" alt=" php实现文件下传的例子(附详细源码) " ></a>
			</div>
			<a href="#" id="img_link" target="_blank">
				<div id="img_url">buding</div>
				<br>
				<img  class="preview" id="preview" src=""   style="max-width:90%" alt=" php实现文件下传的例子(附详细源码) " >
			</a>
		</fieldset>
	</div>
登入後複製

三、Javascript代码:

	<script type="text/javascript">
		$('#postBtn').click(function(){
			$('#preview').hide();
			$('#img_url').hide();
			$('#loading')
				.ajaxStart(function(){
					$(this).show();
				})
				.ajaxComplete(function(){
					$(this).hide();
				});
			if($('#fileToUpload').val() == ""){
				$('#info').html("亲,还没选择文件呢");
				var jObject={"Url":"","Height":413};
				var jString=JSON.stringify(jObject);
				window.parent.postMessage(jString,'*');
				return false;
			} 
			if($('#product').val() == ""){
				$('#info').html("亲,还没选择产品呢");
				$('#info').css("color","#e9af32");
				var jObject={"Url":"","Height":413};
				var jString=JSON.stringify(jObject);
				window.parent.postMessage(jString,'*');
				return false;
			} 
			var val = $('#product').val();
			$.ajaxFileUpload({	
				url:'ajaxupload.php',
				secureuri:false,
				fileElementId:'fileToUpload',
				dataType: 'text',
				data:{product:val},
				success: function (data, status)
				{
					if(data.search(/http:\/\//i) < 0 ){
						$('#info').html(data);
						var jObject={"Url":"","Height":413};
						var jString=JSON.stringify(jObject);
						window.parent.postMessage(jString,'*');
					}else{
						$('#info').html("您上传的文件为:<br/>");
						$('#preview').attr("src",data);
						$('#img_link').attr("href",data);
						$('#img_url').html(data);
						$('#preview').show();
						$('#img_url').show();
						$('#preview').load(function(){
							var imgH=$('#preview').height();
							var jObject={"Url":data,"Height":imgH+228,"oid":"<?php echo @$_REQUEST['oid']; ?>"};
							var jString=JSON.stringify(jObject);
							window.parent.postMessage(jString,'*');
						});
					}
				},
				error: function (data, status, e){	
					$('#info').html(data+e);
				}
			});
		});
	</script>
登入後複製

四、PHP代码

<?php require_once('config.php');
if(empty($_FILES) || empty($_REQUEST)){
	header('location:imgupload.php');
	exit;
}

array_push($_FILES, $_REQUEST);

$filename = 'fileToUpload';
$product = @$_FILES[0]['product'];
$today = date("Y-m-d");
$time = date("YmdHis"); 
$year = date("Y");
$month = date("m");
$day = date("d");
$img_path = $product.'/'.$year.'/'.$month.'/'.$day.'/';
$destination_dir = ROOT_PATH.'/pic/'.$img_path.'/';

if(!is_uploaded_file($_FILES[$filename]['tmp_name'])){//验证上传文件是否存在
	echo "请选择你想要上传的图片";
	exit;
}
	
if($product == "") {//选择产品
   	echo "请选择产品";
	exit;
}
	$files = $_FILES[$filename];
   
	if($max_file_size < $files['size']){//判断文件是否超过限制大小
		echo "图片太大了,传个小点的吧(<=2MB)";
		exit;
	}
		
	if(!file_exists($destination_dir)) {//判断上传目录是否存在,不存在则创建一个.
		if(!mkdir($destination_dir,0777,true)) {
			echo "创建目录 {".$destination_dir."} 失败<可能是权限问题>";
			exit;
		}
	}
	$type = pathinfo($files['name']);
    $type = strtolower($type["extension"]);
	$type =".".$type;
	$tmp_name = $files['tmp_name'];
	$md5file = md5_file($tmp_name);//生成md5文件
	$new_name =$md5file.$type;
    $img_relat_path = $img_path.$new_name;
	$img_abs_path =	$destination_dir.$new_name;
		
    $url = IMG_URL.$img_relat_path;

    //判断数据库中图片是否存在
    $sql="select url from file_url where md5 = '".$md5file."'";
    $res=$db->getOne($sql);
    if($res) {
        echo $res['url'];
        exit; 
    }      
   
    if(!move_uploaded_file ($files['tmp_name'], $img_abs_path)) {//上传文件
        echo "上传文件失败";
			exit;
    }
        //将图片存入数据库       
    $sql="insert into file_url(url,product,md5,create_time) values('".$url."','".$product."','".$md5file."','".$today."')";
    $db->Execute($sql);
    $db->CloseDB();
    echo $url;
?>
登入後複製



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

img檔案怎麼打開 img檔案怎麼打開 Sep 18, 2023 am 09:40 AM

開啟img檔案的方法有使用虛擬光碟機軟體開啟、使用壓縮軟體開啟和使用專用工具開啟。詳細介紹:1、使用虛擬光碟機軟體打開,下載並安裝一個虛擬光碟機軟體,右鍵單擊img文件,選擇“打開方式”或“關聯程序”,在彈出的對話框中選擇安裝的虛擬光驅軟體,虛擬光碟機軟體會自動載入img文件,並將其作為虛擬光碟機中的光碟映像,雙擊虛擬光碟機中的光碟圖標,即可開啟img檔案並存取其中的內容等等。

華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

PHP函數介紹—get_headers(): 取得URL的回應頭訊息 PHP函數介紹—get_headers(): 取得URL的回應頭訊息 Jul 25, 2023 am 09:05 AM

PHP函數介紹—get_headers():取得URL的回應頭資訊概述:在PHP開發中,我們經常需要取得網頁或遠端資源的回應頭資訊。 PHP函數get_headers()能夠方便地取得目標URL的回應頭訊息,並以陣列形式傳回。本文將介紹get_headers()函數的用法,以及提供一些相關的程式碼範例。 get_headers()函數的用法:get_header

為什麼NameResolutionError(self.host, self, e) from e,怎麼解決 為什麼NameResolutionError(self.host, self, e) from e,怎麼解決 Mar 01, 2024 pm 01:20 PM

報錯的原因NameResolutionError(self.host,self,e)frome是由urllib3函式庫中的例外類型,這個錯誤的原因是DNS解析失敗,也就是說,試圖解析的主機名稱或IP位址無法找到。這可能是由於輸入的URL位址不正確,或DNS伺服器暫時無法使用所導致的。如何解決解決此錯誤的方法可能有以下幾種:檢查輸入的URL地址是否正確,確保它是可訪問的確保DNS伺服器可用,您可以嘗試在命令行中使用"ping"命令來測試DNS伺服器是否可用嘗試使用IP位址而不是主機名稱來存取網站如果是在代理

img檔案如何開啟 img檔案如何開啟 Jul 06, 2023 pm 04:17 PM

img檔案開啟的方式:1、確認img檔案路徑;2、使用img檔案開啟器;3、選擇開啟方式;4、檢視圖片;5、儲存圖片。 img檔案是一種常用的圖像檔案格式,通常用於儲存圖片資料。

html和url的差別是什麼 html和url的差別是什麼 Mar 06, 2024 pm 03:06 PM

區別:1、定義不同,url是是統一資源定位符,而html是超文本標記語言;2、一個html中可以有很多個url,而一個url中只能存在一個html頁面;3、html指的是網頁,而url指的是網站位址。

怎樣透過幾個步驟取得您的 Steam ID? 怎樣透過幾個步驟取得您的 Steam ID? May 08, 2023 pm 11:43 PM

現在許多熱愛遊戲的windows用戶都進入了Steam客戶端,可以搜尋、下載和玩任何好遊戲。但是,許多用戶的個人資料可能具有完全相同的名稱,這使得查找個人資料或甚至將Steam個人資料連結到其他第三方帳戶或加入Steam論壇以共享內容變得困難。為設定檔分配了一個唯一的17位id,它保持不變,用戶無法隨時更改,而用戶名或自訂URL可以更改。無論如何,有些用戶並不知道他們的Steamid,這對於了解這一點非常重要。如果您也不知道如何找到您帳戶的Steamid,請不要驚慌。在這篇文

如何在Java中使用URL編碼和解碼 如何在Java中使用URL編碼和解碼 May 08, 2023 pm 05:46 PM

使用url進行編碼和解碼編碼和解碼的類別java.net.URLDecoder.decode(url,解碼格式)解碼器.解碼方法。轉換成普通字串,URLEncoder.decode(url,編碼格式)將普通字串變成指定格式的字串packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net. URLEncoder

See all articles