Home Backend Development PHP Tutorial php实现文件下传的例子(附详细源码)

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

Jun 13, 2016 am 11:14 AM
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> &gt;请选择产品</option>               		<option value="tuan" if echo> &gt;团</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>
Copy after login

三、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>
Copy after login

四、PHP代码

<?phprequire_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-&gt;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-&gt;Execute($sql);    $db-&gt;CloseDB();    echo $url;?&gt;
Copy after login



Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to open img file How to open img file Sep 18, 2023 am 09:40 AM

How to open img file

What are the differences between Huawei GT3 Pro and GT4? What are the differences between Huawei GT3 Pro and GT4? Dec 29, 2023 pm 02:27 PM

What are the differences between Huawei GT3 Pro and GT4?

How to open img file How to open img file Jul 06, 2023 pm 04:17 PM

How to open img file

PHP function introduction—get_headers(): Get the response header information of the URL PHP function introduction—get_headers(): Get the response header information of the URL Jul 25, 2023 am 09:05 AM

PHP function introduction—get_headers(): Get the response header information of the URL

How to get your Steam ID in a few steps? How to get your Steam ID in a few steps? May 08, 2023 pm 11:43 PM

How to get your Steam ID in a few steps?

Why NameResolutionError(self.host, self, e) from e and how to solve it Why NameResolutionError(self.host, self, e) from e and how to solve it Mar 01, 2024 pm 01:20 PM

Why NameResolutionError(self.host, self, e) from e and how to solve it

Fix: Snipping tool not working in Windows 11 Fix: Snipping tool not working in Windows 11 Aug 24, 2023 am 09:48 AM

Fix: Snipping tool not working in Windows 11

How to use URL encoding and decoding in Java How to use URL encoding and decoding in Java May 08, 2023 pm 05:46 PM

How to use URL encoding and decoding in Java

See all articles