function onSelectPhoto(files) {
file_obj = files[0];
if (use_general_upload) {
return;
}
var filesize = file_obj.size < 5120 || file_obj.size > 5242880;
var allow_type = '|.jpg|jpeg|.png|.gif|';
var ext_name = '|' + file_obj.name.toLowerCase().substr(file_obj.name.length - 4) + '|';
var filetype = (allow_type.indexOf(ext_name) == -1 && file_obj.name.indexOf(".") > 0);
var reader = new FileReader();
reader.onload = function (e) {
if (e.target.result.substr(0, 11) == 'data:base64') {
$("#preview_img").attr('src',
"data:application/octet-stream;"
+ e.target.result.substr(e.target.result.indexOf("base64,")));
} else {
$("#preview_img").attr('src', e.target.result);
}
}
if (filesize) {
file_obj = false;
showTextTime("您选择的文件大于5MB,请选择小于5MB的照片", 3000);
return false;
}
if (filetype) {
file_obj = false;
showTextTime("您选择的文件格式有误,应为JPG、PNG或GIF类型的文件", 3000);
return false;
}
file_name = file_obj.name;
reader.readAsDataURL(file_obj); //
// alert(reader);
}
图片上传处理代码
function upload_photo() {
if (file_obj == false) {
showTextTime("请先从手机中选取要上传的照片", 2000);
return false;
}
if (uploading) {
showTextTime("照片正在上传中,请稍候...", 2000);
return false;
}
uploading = true;
showLoading(loading_src, "照片上传中...", 0);
if (use_general_upload) {
document.forms[0].submit();
} else {
var ui = $("#upload_ifr");
var ui = ui[0];
ui.contentWindow.upload_photo();
}
return false;
}
function upload_photo() {
var xhr = new XMLHttpRequest();
if (xhr.upload) {
xhr.onreadystatechange = function(e) {
window.top.callbackHandler(e, xhr);
};
xhr.upload.onprogress=function(e){
if(e.lengthComputable){
var percent =(e.loaded / e.total *100|0)+"%";
}
}
var formData = new FormData();
formData.append('files', window.top.file_obj);
// alert(formData);
xhr.open("POST", 'upload_file.php', true);
xhr.send(formData);
}
}
这里我应该怎么在upload_file.php获取到传递过来的formData
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
`
}`
base64_decode()
为什么不直接上传图片,这样做费力不讨好. 如果用base64提交,可以把他当字符串post, 后台从$_POST里取出就好了.
先正则提取图片后缀和数据流,再对数据流进行base64_decode