백엔드 개발 PHP 튜토리얼 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> >请选择产品</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代码

<?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;?>
로그인 후 복사



본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

img 파일을 여는 방법 img 파일을 여는 방법 Sep 18, 2023 am 09:40 AM

img 파일을 여는 방법에는 가상 광학 드라이브 소프트웨어 사용, 압축 소프트웨어 사용 및 특수 도구 사용이 포함됩니다. 자세한 소개: 1. 가상 광학 드라이브 소프트웨어를 사용하여 가상 광학 드라이브 소프트웨어를 열고, 다운로드하고, img 파일을 마우스 오른쪽 버튼으로 클릭하고, "다음 프로그램으로 열기" 또는 "관련 프로그램"을 선택하고, 팝업에서 설치된 가상 광학 드라이브 소프트웨어를 선택합니다. -up 대화 상자, 가상 광학 드라이브 소프트웨어는 img 파일을 자동으로 로드하고 가상 광학 드라이브에서 디스크 이미지로 사용합니다. 가상 광학 드라이브에서 디스크 아이콘을 두 번 클릭하면 img 파일을 열고 해당 콘텐츠에 액세스할 수 있습니다. 등.

화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? 화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? Dec 29, 2023 pm 02:27 PM

많은 사용자들이 스마트 시계를 선택할 때 Huawei 브랜드를 선택하게 됩니다. 그 중 Huawei GT3pro와 GT4가 가장 인기 있는 선택입니다. 두 제품의 차이점을 궁금해하는 사용자가 많습니다. Huawei GT3pro와 GT4의 차이점은 무엇입니까? 1. 외관 GT4: 46mm와 41mm, 재질은 유리 거울 + 스테인레스 스틸 본체 + 고해상도 섬유 후면 쉘입니다. GT3pro: 46.6mm 및 42.9mm, 재질은 사파이어 유리 + 티타늄 본체/세라믹 본체 + 세라믹 백 쉘입니다. 2. 건강한 GT4: 최신 Huawei Truseen5.5+ 알고리즘을 사용하면 결과가 더 정확해집니다. GT3pro: ECG 심전도, 혈관 및 안전성 추가

Jul 25, 2023 am 09:05 AM

PHP 기능 소개 - get_headers(): URL의 응답 헤더 정보 얻기 개요: PHP 개발에서는 웹 페이지나 원격 리소스의 응답 헤더 정보를 얻어야 하는 경우가 많습니다. PHP 함수 get_headers()를 사용하면 대상 URL의 응답 헤더 정보를 쉽게 얻고 이를 배열 형식으로 반환할 수 있습니다. 이 기사에서는 get_headers() 함수의 사용법을 소개하고 관련 코드 예제를 제공합니다. get_headers() 함수 사용법: get_header

img 파일을 여는 방법 img 파일을 여는 방법 Jul 06, 2023 pm 04:17 PM

img 파일을 여는 방법: 1. img 파일 경로를 확인합니다. 2. img 파일 오프너를 사용합니다. 3. 열기 방법을 선택합니다. 4. 사진을 봅니다. img 파일은 일반적으로 사진 데이터를 저장하는 데 사용되는 일반적으로 사용되는 이미지 파일 형식입니다.

몇 단계만으로 Steam ID를 얻는 방법은 무엇입니까? 몇 단계만으로 Steam ID를 얻는 방법은 무엇입니까? May 08, 2023 pm 11:43 PM

요즘에는 게임을 좋아하는 많은 Windows 사용자들이 Steam 클라이언트에 접속하여 좋은 게임을 검색하고 다운로드하여 플레이할 수 있습니다. 그러나 많은 사용자의 프로필이 정확히 동일한 이름을 가질 수 있으므로 프로필을 찾거나 Steam 프로필을 다른 제3자 계정에 연결하거나 Steam 포럼에 가입하여 콘텐츠를 공유하기가 어렵습니다. 프로필에는 고유한 17자리 ID가 할당되며, 이는 동일하게 유지되며 사용자가 언제든지 변경할 수 없는 반면, 사용자 이름이나 맞춤 URL은 변경할 수 있습니다. 그럼에도 불구하고 일부 사용자는 자신의 Steamid를 모르므로 이를 아는 것이 중요합니다. 계정의 Steamid를 찾는 방법을 모르더라도 당황하지 마세요. 이 기사에서는

e의 NameResolutionError(self.host, self, e) 이유와 해결 방법 e의 NameResolutionError(self.host, self, e) 이유와 해결 방법 Mar 01, 2024 pm 01:20 PM

오류의 원인은 urllib3 라이브러리의 예외 유형인 NameResolutionError(self.host,self,e)frome입니다. 이 오류의 원인은 DNS 확인에 실패했기 때문입니다. 해결을 찾을 수 없습니다. 이는 입력한 URL 주소가 정확하지 않거나 DNS 서버를 일시적으로 사용할 수 없기 때문에 발생할 수 있습니다. 이 오류를 해결하는 방법 이 오류를 해결하는 방법은 여러 가지가 있습니다. 입력한 URL 주소가 올바른지 확인하고 액세스할 수 있는지 확인하십시오. DNS 서버를 사용할 수 있는지 확인하십시오. 명령줄에서 "ping" 명령을 사용해 볼 수 있습니다. DNS 서버를 사용할 수 있는지 테스트하려면 프록시 뒤에 있는 경우 호스트 이름 대신 IP 주소를 사용하여 웹사이트에 액세스해 보세요.

Java에서 URL 인코딩 및 디코딩을 사용하는 방법 Java에서 URL 인코딩 및 디코딩을 사용하는 방법 May 08, 2023 pm 05:46 PM

url을 사용하여 java.net.URLDecoder.decode(url, 디코딩 형식) 클래스 decoder.decoding 인코딩 및 디코딩 방법을 인코딩 및 디코딩합니다. 일반 문자열로 변환하는 URLEncoder.decode(url, 인코딩 형식)는 일반 문자열을 지정된 형식의 문자열로 변환합니다. packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net. URL인코더

수정: Windows 11에서 캡처 도구가 작동하지 않음 수정: Windows 11에서 캡처 도구가 작동하지 않음 Aug 24, 2023 am 09:48 AM

Windows 11에서 캡처 도구가 작동하지 않는 이유 문제의 근본 원인을 이해하면 올바른 솔루션을 찾는 데 도움이 될 수 있습니다. 캡처 도구가 제대로 작동하지 않는 주요 이유는 다음과 같습니다. 초점 도우미가 켜져 있습니다. 이렇게 하면 캡처 도구가 열리지 않습니다. 손상된 응용 프로그램: 캡처 도구가 실행 시 충돌하는 경우 응용 프로그램이 손상되었을 수 있습니다. 오래된 그래픽 드라이버: 호환되지 않는 드라이버가 캡처 도구를 방해할 수 있습니다. 다른 응용 프로그램의 간섭: 실행 중인 다른 응용 프로그램이 캡처 도구와 충돌할 수 있습니다. 인증서가 만료되었습니다. 업그레이드 프로세스 중 오류로 인해 이 문제가 발생할 수 있습니다. 이 문제는 대부분의 사용자에게 적합하며 특별한 기술 지식이 필요하지 않습니다. 1. Windows 및 Microsoft Store 앱 업데이트

See all articles