ファイル拡張子が正しくない場合、アラートが表示されるという問題があります。これは問題なく動作しますが、問題はファイルをアップロードしてはならないということです。以下の関数で、imageValidationが渡された場合は、「startUploadImage()」関数に移動してアップロードを開始すると述べたため、ファイルをアップロードするのはなぜですか。
function imageClickHandler(imageuploadform){
if(imageValidation(imageuploadform)){
return startImageUpload(imageuploadform);
}
return false;
}
以下は、ファイル拡張子をチェックするimageValidation()コードです。
function imageValidation(imageuploadform) {
var val = $(imageuploadform).find(".fileImage").val();
switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
case 'gif':
case 'jpg':
case 'jpeg':
case 'pjpeg':
case 'png':
return true;
case '':
$(imageuploadform).find(".fileImage").val();
alert("To upload an image, please select an Image File");
return false;
default:
alert("To upload an image, please select a valild file extension.");
return false;
}
return false;
}
startImageUpload関数を表示する必要があるかどうかはわかりませんが、表示する場合は、以下のとおりです。
function startImageUpload(imageuploadform){
$(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
$(imageuploadform).find('.imagef1_cancel').css('visibility','visible');
$(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
sourceImageForm = imageuploadform;
return true;
}
フォームを示すコード:
var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='imageClickHandler(this);' class='imageuploadform' >" +
"Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><label>" +
"<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>" +
"</p><p class='imagef1_cancel' align='center'><label>" +
"<input type='button' name='cancelImageBtn' class='cancelimage' value='Cancel' /></label>" +
"</p></form>");