我想在javascript中捕获上传文件属性数组。这可能在javascript中做到吗?
细节要求:我有html表单,这是由javascript函数提交的,现在我想添加一个字段上传文件在这种形式,但如何能上传文件数组可以通过javascript函数发送到我的php脚本
$('#save').click(function(){
var filearray = new Array();
var file = $("#file")[0].files[0];
filearray["filename"] = file.name;
filearray["filesize"] = file.size;
filearray["fileType"] = file.type;
filearray["fileTemp"] = file.tmp_name;
filearray["fileError"] = file.error;
});
我没有得到属性tmp_name和错误在javascript中,因为它生成时,文件是在服务器上,但我在客户端这样做。
文件属性tmp_name和错误当文件在服务器上
试试这样
var extension = new Array(".jpg",".jpeg",".JPEG",".JPG",".PNG",".png",".ico",".ICO",".GIF",".gif");
function CheckExtension(fieldvalue)
{
var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.'));
for(var i = 0; i < extension.length; i++) {
if(thisext == extension[i]) { return true; }
}
return false;
}
传递字段值作为输入文件值。
获取文件名和扩展名:
var extension = fileName.split('.').pop();
var name = fileName.split('.')[0];
获取文件大小:
$('#youfiletextbox').bind('change', function() {
var fileSize = this.files[0].size);
});
<input type="file" class='img-icon' id="qImage" name="qImage1" accept="image/*" onchange="GetFileInfo('qImage')"/>
function GetFileInfo(imageID) {
var fileInput = document.getElementById(imageID);
var fName;
var fSize;
var fType;
var message = "";
if ('files' in fileInput) {
if (fileInput.files.length == 0) {
alert("Please browse for one or more files.");
} else {
for (var i = 0; i < fileInput.files.length; i++) {
var file = fileInput.files[i];
if ('name' in file) {
fName = file.name;
}
else {
fName = file.fileName;
}
if ('size' in file) {
fSize = file.size;
}
else {
fSize = file.fileSize;
}
if ('type' in file) {
fType = file.type;
}
else {
fType = file.mediaType;
}
}
var extension = fName.split('.').pop();
var size = fSize / 1024;
if(extension == "png" || extension == "jpg" || extension == "svg"){
if(size > 5){
alert("Image size must be less than 5kb.");
document.getElementById(imageID).value = null;
}
} else {
alert("Image type must png, jpg or svg and size must be less than 5kb.");
document.getElementById(imageID).value = null;
}
}
}
else {
if (fileInput.value == "") {
message += "Please browse for one or more files.";
message += "<br />Use the Control or Shift key for multiple selection.";
}
else {
message += "Your browser doesn't support the files property!";
message += "<br />The path of the selected file: " + fileInput.value;
}
document.getElementById ("info").innerHTML = message;
}
}
<div id="info" style="margin-top:20px"></div>