0

画像のアップロード機能に問題があります。jQuery uiモーダルダイアログでpluploadを使用してファイルをアップロードしています。Ii は Firefox と Chrome では正常に動作していますが、IE ブラウザではファイル選択ダイアログを正しく開いていますが、ファイルがアップロードされません。また、エラーは表示されません。

以下のコードを使用しています:

  var insert_image_dialogOpts = {
                autoOpen: false,
                modal: false,
                resizable: true,                    
                width: 650,                 
                show: 'blind',
                title: 'Insert Image'
            };
        jQ('#insertimagebox').dialog(insert_image_dialogOpts); 
        jQ('#insert_image_dialog').click(function() {
            jQ('#insertimagebox').dialog('open');
            return false;   
        });         

        uploadInsertImage = new plupload.Uploader({
            runtimes: 'html5,flash,gears',
            browse_button: 'insertImage',
            container: 'uploadImage',
            url: '/upload',
            multipart_params: {
                'fancy_upload': '1',
                'insert_image': '1',                    
                'action': 'doUpload',
                'forum': forum,
                'uid': uid,
                'pid': pid,
                'timestamps': timestamps                                
            },
            multi_selection: true,
            flash_swf_url: '/tools/plupload.flash.swf',
            silverlight_xap_url: '/tools/plupload.silverlight.xap',
            filters: [{
                title: "Image files",
                extensions: "jpg,gif,jpeg,jpe,png"
            }]

        });
        // General settings
        uploadInsertImage.init();           
        // Event for each file added
        uploadInsertImage.bind('FilesAdded', function(up, files) {
                jQ.each(files, function(i, file) {                  
                jQ('#imagesInserted').append('<li class="file" id="'+file.id+'" style="float:left;cursor:pointer;margin:0px;padding:0px;list-style-type:none;font-size:10px;"><span id="fileProgress" onclick="jQuery(this).html(\'\')"><span style="float:left;" id="' + file.id + '">' + file.name + '' + '</span><div id="' + file.id + 'progress" style="width:9em; margin-top:5px; height:.6em;float:left"></div><a id="attachCancel' + file.id + '" href="javascript:;" onClick="stopUpload(\'' + file.id + '\');">Cancel </a></span><br></li>');
                jQ('#' + file.id + 'progress').progressbar({
                    value: files.percent
                }).append('<div style="line-height:8px; text-align:center; font-size:10px;">Uploading...</div>');                   
            });             

            uploadInsertImage.start();          
                up.refresh();   // Reposition Flash/Silverlight
            });

助けてください!

4

3 に答える 3

1

みんなありがとう!

これで問題は解決しました。以下のコードを使用してjquery uiモーダルダイアログを開き、pluploadライブラリで適切に動作しました。

     dialog = jQ('#insertimagebox').dialog({
     autoOpen: false,
     width: 650,
     modal: false,   
     title: 'Upload file',
     closeText: 'Close'  
     });

     jQ('#insert_image_dialog').bind('click', function (event) {
        event.preventDefault();
        jQ('#insertimagebox').dialog('open')
     });    

github から完全なコードを取得することもできます: https://github.com/ljosa/plupload/blob/jquery_ui_dialog/examples/jquery_ui_dialog.html

ありがとう!

于 2013-08-05T10:06:36.743 に答える
0

あなたのコードを見ると、私のランタイムとあなたのランタイムの違いがわかります。実行時に Silverlight が欠落していると思います (Microsoft が好むものです)。

コードを含めました(参照用)

    function initializeUploaders() {
        $('#photoUploader').pluploadQueue({

            runtimes : 'html5,flash,silverlight,html4',
            max_file_size : '10mb',
            unique_names : false,
            filters : [
                {title : "Image files", extensions : "jpg,gif,png"}
            ],
            flash_swf_url : '<%= ResolveUrl("~/Resources/Scripts/plupload.flash.swf") %>',
            dragdrop : false,
            urlstream_upload : true,
            silverlight_xap_url : '<%= ResolveUrl("~/Resources/Scripts/plupload.silverlight.xap") %>',
            preinit : {
                UploadFile: function(up, file) {
                    up.settings.url = 'UploadPhoto.ashx?workOrderId=' + $('#hdfWorkOrderId').val();                     
                }
            },
            init : {
                FileUploaded: function(up, file, info) {
                    if (up.total.queued == 0) {
                        <%=ClientScript.GetPostBackEventReference(udpWorkOrder, "")%>;                            
                    }
                }
            }
        });
 }
于 2013-08-05T06:44:03.500 に答える
0

PlUpload は、独自のコードを使用してボタンとその機能を作成しました。そのコードをバイパスしたい場合は、PlUpload からコードを編集する必要があります。それは、私ができるよりも高いレベルでのコーディングです。

PlUpload は以下のようなコードを生成します。

<div class="plupload_buttons">
    <a href="#" class="plupload_button plupload_add" id="photoUploader_browse" style="position: relative; z-index: 0;">Add files</a>
    <a href="#" class="plupload_button plupload_start plupload_disabled">Start upload</a>
</div>

上記と一致する場合は、ブラウザの HTML コードを確認してください。問題がどこにあるかわからない場合。

私が考えることができると思う唯一の方法は、IE を含めて機能する例を見つけ、そこからカスタム設定にコーディングすることです。申し訳ありませんが、これ以上お役に立てません。

于 2013-08-05T08:04:46.183 に答える