[FRAGE] JqXHR , ajax blob-header entfernen bei Benutzung von blueimp jquery.fileupload.js

TheFreeman

New member
Hallo zusammen,

Ich benutze folgende Scripts für mein File-Upload-GUI:
Mini AJAX File Upload Form | Tutorialzine
https://github.com/blueimp/jQuery-File-Upload

Mein Problem liegt darin, dass beim Senden eines chunks oberhalb der binären Daten auch noch ein Header mitgesendet wird, der folgendermasse aussieht:
--------------------------------------------------------------------------------------------------
Code:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - 25861752531267
Content-Disposition: form-data; name="upl"; filename="1.rar"
Content-Type: application/octet-stream
--------------------------------------------------------------------------------------------------

Diesen Header möchte ich gerne entfernen.
Dazu habe ich schon ne Menge Ansätze im Netz gefunden, die aber alle nichts geholfen haben.

Hat hierzu bitte jemand eine Idee? Ich sitze schon ein paar Tage an dem Problem und komme einfach nicht weiter.

Dazu habe ich nun folgende options (Ausschnitt):
--------------------------------------------------------------------------------------------------
PHP:
$('#upload').fileupload({

    dropZone: $('#drop'),

    type        : GLOBAL_FORM_METHOD,
    method      : "put",
    dataType    : "json",
    maxChunkSize: GLOBAL_CHUNK_SIZE,
    multipart   : true,

    add: function (e, data)
    {
        var reader = new FileReader();
        var file = data.files[0];
        var jqXHR;

        var tpl = $('<li class="working"><input type="text" value="0" data-width="48" data-height="48"'+
            ' data-fgColor="#0788a5" data-readOnly="1" data-bgColor="#3e4043" /><p></p><div class="msg"></div><span></span></li>');

        tpl.find('p')
            .text( file.name )
            .append('<i>' + formatFileSize( file.size ) + '</i>');

        data.context = tpl.appendTo(ul);

        tpl.find('input').knob();

        tpl.find('span').click(function()
        {
            if( tpl.hasClass('working') )
            {
                jqXHR.abort();
            }

            tpl.fadeOut( function()
            {
                tpl.remove();
            });
        });

        data.postMessage = data.files[0].type;
        data.contentType = data.files[0].type;

        var chunksize = GLOBAL_CHUNK_SIZE > file.size ? file.size : GLOBAL_CHUNK_SIZE;

        reader.onload = function( event ) 
        {
            var binary = event.target.result;
            var md5 = CryptoJS.MD5(binary).toString();

            data.url += "&md5sum=" + md5;

            jqXHR = data.submit();
        };

        data.url = GLOBAL_FORM_ACTION;
        data.url += "?etf_id=" + GLOBAL_FOLDER_ID;
        data.url += "&file_title=" + file.name;

        if( GLOBAL_CHUNK_SIZE > file.size )
        {
            data.url += "&size_chunk_start=" + 0;
            data.url += "&size_chunk_length=" + chunksize;
        }

        data.url += "&size_final=" + file.size;

        reader.readAsBinaryString( file );
    },

    beforeSend : function(e, data)
    {
        var file = data.files[0];

        this.find(".msg").hide();

        if( GLOBAL_CHUNK_SIZE < file.size )
        {
            console.log( "Chunk data: ", data.uploadedBytes, data.chunkSize, file.size, data );

            data.url += "&size_chunk_start=" + data.uploadedBytes;
            data.url += "&size_chunk_length=" + data.chunkSize;

            if( typeof this.attr('session_id') !== "undefined" )
                data.url += "&session_id=" + this.attr( 'session_id' );
        }

    });
--------------------------------------------------------------------------------------------------
Vielen Dank im Voraus !!! :)
 
Zuletzt bearbeitet:
Ich denke, du darfst einfach nicht mit diesem Plugin arbeiten, sondern musst dir deine zu übermittelnden Daten selber zusammenbauen.
 
Zurück
Oben