php+html 5 리 셋 없 는 이미지 업로드 튜 토리 얼 구현
전단 html 코드 업로드,html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title> </title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<style>
.upload{
width:300px;
height:200px;
position:relative;
}
.upload input[type='file']{
position:absolute;
width:70px;
top:0;
left:0;
z-index:10;
opacity:0;
filter:alpha(opacity=0);
}
.upload input.selbutton{
width:70px;
height:30px;
background:#cf001b;
color:#FFF;
font-size:14px;
position:absolute;
top:0;left:0;
z-index:9;
border:none;
cursor:pointer;
}
.upload input.upbutton{
width:70px;
height:30px;
background:#cf001b;
color:#FFF;
font-size:14px;
position:absolute;
top:50px;left:0;
z-index:10;
border:none;
cursor:pointer;
}
</style>
</head>
<body>
<div class='upload'>
<input type="file" name="file" />
<input type="button" name="selbutton" class="selbutton" value=" " />
<input type="button" name="upbutton" class="upbutton" value=" " />
</div>
<div class='previews'>
<img src="#" class="image_thumb" alt=" "/>
</div>
</body>
</html>
양식 은 아래 그림 과 같다.다음은 js 코드.
<script type="text/javascript">
$(".upbutton").click(function(){
// ,
var filetype = ['jpg','jpeg','png','gif'];
if($('.image').get(0).files){
fi = $('.image').get(0).files[0]; //
// false
var fname = fi.name.split('.');
if(filetype.indexOf(fname[1].toLowerCase()) == -1){
alert(' ');
return ;
}
// h5 fileReader
var fr = new FileReader();
fr.readAsDataURL(fi); // base64
fr.onload = function(frev){
pic = frev.target.result; //
// ,
$('.image_thumb').attr('src',pic);
// ajax post
$.post(
'handle.php',
{
message:pic,
filename:fname[0],
filetype:fname[1],
filesize:fi.size
},
function(data){
data = eval('('+data+')');
if(data.code == 1 || data.code == 2){
console.log(' ')
}else if(data.code == 0){
console.log(' ')
}
}
);
}
}
})
</script>
다음은 PHP 처리 코드 입 니 다. handle.php
$imgtype = array(
'gif'=>'gif',
'png'=>'png',
'jpg'=>'jpeg',
'jpeg'=>'jpeg'
); //
$message = $_POST['message']; // base64
$filename = $_POST['filename']; //
$ftype = $_POST['filetype']; //
// , base64
$message = base64_decode(substr($message,strlen('data:image/'.$imgtype[strtolower($ftype)].';base64,')));
$filename = $filename.".".$ftype;
$furl = "D:/now/";
//
$file = fopen($furl.$filename,"w");
if(fwrite($file,$message) === false){
echo json_encode(array('code'=>1,'con'=>'failed'));
exit;
}
echo json_encode(array('code'=>0,'con'=>$filename));
파일 을 선택 하고 업로드 효 과 를 누 르 면 다음 그림 과 같 습 니 다.이상 은 전체 사진 에 올 라 온 코드 입 니 다.물론 PHP 의 부분 에 대해 최적화 할 수 있 는 부분 이 많 습 니 다.예 를 들 어 파일 이름 부분 은 이름 을 바 꾸 고 같은 파일 이름 이 올 라 온 후의 파일 이름 이 다 를 수 있 도록 하 는 등 입 니 다.이런 업로드 방식 은 저도 처음에 사용 하기 시 작 했 습 니 다.처음에 Node.js 가 업로드 한 시사 점 을 받 고 PHP 에 응용 하려 고 했 는데 정말 업로드 에 성공 할 줄 은 몰 랐 습 니 다.
여러분 도 이 방법 에 따라 사진 업 로드 를 실현 할 수 있 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.