0

javascriptでアップロードファイルのプロパティ配列をキャッチしたい。これはjavascriptで行うことは可能ですか?

詳細要件: javascript 関数によって送信される html フォームがあり、そのフォームにフィールドアップロード ファイルをもう 1 つ追加したいのですが、そのアップロード ファイル配列を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;
});

ファイルがサーバー上にあるときに生成されるため、JavaScriptで属性tmp_nameエラーを取得していませんが、クライアント側でこれを行っています。

4

4 に答える 4

3

ファイル属性tmp_nameと、ファイルがサーバー上にあるときに生成されるエラー

于 2012-12-29T10:12:58.653 に答える
0

ファイル名と拡張子を取得するには:

var extension = fileName.split('.').pop();
var name = fileName.split('.')[0];

ファイルサイズを取得するには:

$('#youfiletextbox').bind('change', function() {
  var fileSize = this.files[0].size);
});
于 2012-12-28T06:35:46.063 に答える
0

このようなことを試してください

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;

}

フィールド値を入力ファイル値として渡します。

これがあなたを助けることを願っています..

于 2012-12-28T06:31:18.117 に答える
0
  <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>
于 2019-07-25T15:05:14.017 に答える