1

ファイルタイプに基づいて特定のプリセットURLにアップロードするアップロードシステムが必要です。次に例を示します。

画像は「exampleserver.com/upload/image」にアップロードされ、動画は「exampleserver.com/upload/video」にアップロードされます。

http://blueimp.github.com/jQuery-File-Upload/を確認しましたが、コードを変更できませんでした(JQueryプラグインの経験が不足している可能性があります)

アップロードシステムは、複数のファイルの選択をサポートし、クロスブラウザ互換である必要があります(IE6を除く)。

上記のJqueryファイルアップロードプラグインのコードに対する提案や変更は大歓迎です。

編集:画像やビデオがアップロードされるサーバーは私のものではなく、Facebookのものです。

4

2 に答える 2

1

これが機能するためには、クライアントが 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;
        }
    }
});
于 2012-09-13T12:19:20.377 に答える
-1

リンク先のファイル アップロード コンポーネントのドキュメントを参照すると、「どのサーバー側プラットフォームでも動作する」と記載されているため、サーバー側で何かを実装する必要があります。開始するためのいくつかのリンクを次に示します。

簡単な紹介: http://www.w3schools.com/php/php_file_upload.asp

php マニュアル エントリ: http://php.net/manual/en/features.file-upload.php

于 2012-09-13T12:08:42.897 に答える