Maison > développement back-end > tutoriel php > php实现文件下传的例子(附详细源码)

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

WBOY
Libérer: 2016-06-13 11:14:32
original
822 Les gens l'ont consulté

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

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

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

一、功能:

A:文件分类上传

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

C:点击图片,查看详细

二、HTML代码:

	<div id="container">		<fieldset>			<legend class="img"><img     style="max-width:90%" src="css/logo.png" 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     style="max-width:90%" src="css/loading.gif" 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>
Copier après la connexion

三、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>
Copier après la connexion

四、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->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;?>
Copier après la connexion



Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal