これが機能するためには、クライアントが HTML5 をサポートする必要があり、File、FileList、および Blob が必要です。これがどのように機能するかのデモを見ることができます。
アップローダの設定を変更するのは非常に簡単です: ( documentation find "Options" )
$('#fileupload').fileupload(
'option',
'url',
'/path/to/upload/handler.json'
);
画像と動画を同じ場所に送信し、サーバー側でチェックすることをお勧めします。それはあなたの人生をずっと楽にしてくれます。
編集:
拡張機能を確認し、画像とビデオをさまざまなスクリプトに送信する方法は次のとおりです。
function checkFileExtension(file) {
var extension = file.name.split('.').pop().toLowerCase();
var image_extensions = ['gif', 'png', 'jpg', 'jpeg'];
var video_extensions = ['mp4', 'avi', 'wmv'];
// The file extension is not in the array
if ($.inArray(extension, image_extensions) >= 0)
return "image";
else if ($.inArray(extension, video_extensions) >= 0)
return "video";
else
return "notAllowed";
}
// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload({
// This is triggered when you drag'n'drop a file over the uploader
drop: function (e, data) {
$.each(data.files, function (index, file) {
// The file doesn't pass checkFileExtension, return an error
var extension = checkFileExtension(file);
if (extension != "image" && extension != "video") {
// Print an error message in the UI
file.error = "File extension not allowed!";
}
});
},
// This is triggered when you click a button and select files from a list.
change:function (e, data) {
$.each(data.files, function (index, file) {
// The file doesn't pass checkFileExtension, return an error
var extension = checkFileExtension(file);
if (extension != "image" && extension != "video") {
// Print an error message in the UI
file.error = "File extension not allowed!";
}
});
},
// This is triggered on every file in the queue when you click "Upload"
submit: function (e, data) {
// The file is an image - submit those to
if (checkFileExtension(data.files[0]) == "image") {
$('#fileupload').fileupload(
'option',
'url',
'/upload/images'
);
}
// The file is a video.
else if(checkFileExtension(data.files[0]) == "video"){
$('#fileupload').fileupload(
'option',
'url',
'/upload/videos'
);
}
// The file is not a video/image - don't submit the file.
else {
return false;
}
}
});