iframe 上传
upload.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<!DOCTYPE html> <html lang= "en" >
<head> <meta charset= "UTF-8" >
<title>Title</title>
<script src= "https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js" ></script>
</head> <body> <iframe id= "upload_target" name= "upload_target" src= "upload.php" style= "width:0;heigth:0;overflow:hidden;border:0;position: absolute; left:-500px;" ></iframe>
<img id= "tag_img" src= "http://avatar.csdn.net/C/2/1/1_shenlingsuifeng.jpg" />
<form enctype= "multipart/form-data" action= "upload.php" method= "post" target= "upload_target" >
<input type= "file" id= "fileipt" name= "userfile" class= "file" value= "" />
<input type= "submit" name= "uploadimg" value= "上传" id= "submit" hidden />
</form> <script type= 'text/javascript' >
var lastFileName;
$( "#fileipt" ).change( function () {
var fileName = $( this ).val();
var pos = fileName.lastIndexOf( "\\" );
fileName = fileName.substr(pos+1, fileName.length); // 截取出文件名 因为会带路径
lastFileName = fileName;
$( "#submit" ).click();
});
function stopSend($url) {
$( "#tag_img" ).attr( "src" ,$url);
}
</script> </body> </html> |
upload.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php /** * Created by PhpStorm.
* User: chenxiaolong
* Date: 7/21/17
* Time: 10:24
*/
//var_dump($_FILES); $file = $_FILES [ 'userfile' ];
if ( $file [ 'size' ] != 0) {
$name =rand(0,500000). dechex (rand(0,10000)). ".jpg" ;
move_uploaded_file( $file [ 'tmp_name' ], $name );
if ( $name ) {
echo "<script>parent.stopSend('$name')</script>" ;
}
} |
ajax 无刷新上传图片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
< button id = "J_headimg" style = "font-size: 12px;margin-left: 10px;width: 70px;height: 30px;background: #10AD5A;color: #fff;" >修改头像</ button >
< input type = "file" name = "pic" id = "pic" hidden accept = "image/*" />
< input type = "text" id = "headimg" name = "headimg" hidden>
< script >
$("#J_headimg").click(function() {
$("#pic").click();
return false;
});
$("#pic").change(function() {
var $that = $(this);
var imgPath = $(this).val();
if (imgPath == "") {
alert("请选择上传图片!");
return;
}
//判断上传文件的后缀名
var strExtension = imgPath.substr(imgPath.lastIndexOf('.') + 1);
if (strExtension != 'jpg' && strExtension != 'gif'
&& strExtension != 'png' && strExtension != 'bmp' && strExtension != 'jpeg') {
alert("请选择图片文件");
return;
}
var formData = new FormData();
formData.append('file', $that[0].files[0]);// php 用$_FILES['file']接收
console.log($that[0].files[0]);
$.ajax({
type: "POST",
url: "__URL__/uploadimg",
data: formData,
cache: false,
processData: false,// 需要加这两个参数
contentType: false,
success: function(data) {
var obj = JSON.parse(data);
if(obj.status == 0) {
$("#preimg").attr("src","Public/Upload/" + obj.data);
$("#headimg").val(obj.data);
} else {
alert(obj.data);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("上传失败,请检查网络后重试");
}
});
});
</ script >
|
对应uploadimg方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public function uploadimg() { $file = $_FILES [ 'file' ]; $arr = array ( 'jpg' => 'image/jpeg' , 'png' => 'image/png' , 'gif' => 'image/gif' , 'bmp' => 'image/bmp' ); if ( $ext = array_search ( $file [ 'type' ], $arr )) { $rand = uniqid(); $filename = "Public/Upload/avatar/{$rand}.{$ext}" ; } else { exit (json_encode( array ( 'status' =>2, 'data' => '只支持图片上传' ))); } $r = move_uploaded_file( $file [ 'tmp_name' ], $filename ); if ( $r ) { exit (json_encode( array ( 'status' =>0, 'data' => "avatar/$rand.$ext" ))); } else { exit (json_encode( array ( 'status' =>1, 'data' => '上传失败' ))); } }
|