Hi Alex. Could you also give me the codes you used for the ajaxfileupload.php and doajaxfileupload.php?
I tried your updated code but it still cannot understand the data file type. I tried upload both and image (jpeg) and word doc. Thanks a lot! Best, McBilly On Sun, Aug 31, 2008 at 8:55 PM, Alexandre Plennevaux <[EMAIL PROTECTED]>wrote: > as a matter of fact, i just used that plugin and i had to do a lot of > fixing in order for it to work on jquery 1.2.6 > > here is the updated code: > > > jQuery.extend({ > > > createUploadIframe: function(id, uri){ > //create frame > var frameId = 'jUploadFrame' + id; > > > if (window.ActiveXObject) { > var io = document.createElement('<iframe id="' + frameId + '" > name="' + frameId + '" />'); > if (typeof uri == 'boolean') { > io.src = 'javascript:false'; > } > else > if (typeof uri == 'string') { > io.src = uri; > } > } > else { > var io = document.createElement('iframe'); > io.id = frameId; > io.name = frameId; > } > io.style.position = 'absolute'; > io.style.top = '-1000px'; > io.style.left = '-1000px'; > > //document.body.appendChild(io); > > //var myframe_src = (typeof uri == 'boolean') ? 'javascript:false' > : uri; > // var myframe = '<iframe > style="position:absolute;top:-1000px;left:-1000px" id="' + frameId + '" > name="' + frameId + '" src="' + myframe_src + '"></iframe>'; > $('body').append(io); > return io; > > }, > createUploadForm: function(id, fileElementId){ > //create form > var formId = 'jUploadForm' + id; > var fileId = 'jUploadFile' + id; > var form = $('<form action="" method="POST" name="' + formId + '" > id="' + formId + '" enctype="multipart/form-data"></form>'); > var oldElement = $('#' + fileElementId); > var newElement = $(oldElement).clone(); > $(oldElement).attr('id', fileId); > $(oldElement).before(newElement); > $(oldElement).appendTo(form); > //set attributes > $(form).css('position', 'absolute'); > $(form).css('top', '-1200px'); > $(form).css('left', '-1200px'); > $(form).appendTo('body'); > return form; > }, > > ajaxFileUpload: function(s){ > // TODO introduce global settings, allowing the client to modify > them for all requests, not only timeout > s = jQuery.extend({}, jQuery.ajaxSettings, s); > var id = new Date().getTime(); > var form = jQuery.createUploadForm(id, s.fileElementId); > var io = jQuery.createUploadIframe(id, s.secureuri); > var frameId = 'jUploadFrame' + id; > var formId = 'jUploadForm' + id; > // Watch for a new set of requests > if (s.global && !jQuery.active++) { > jQuery.event.trigger("ajaxStart"); > } > var requestDone = false; > // Create the request object > var xml = {}; > if (s.global) > jQuery.event.trigger("ajaxSend", [xml, s]); > // Wait for a response to come back > var uploadCallback = function(isTimeout){ > var io = document.getElementById(frameId); > try { > if (io.contentWindow) { > xml.responseText = io.contentWindow.document.body ? > io.contentWindow.document.body.innerHTML : null; > xml.responseXML = io.contentWindow.document.XMLDocument > ? io.contentWindow.document.XMLDocument : io.contentWindow.document; > > } > else > if (io.contentDocument) { > xml.responseText = io.contentDocument.document.body > ? io.contentDocument.document.body.innerHTML : null; > xml.responseXML = > io.contentDocument.document.XMLDocument ? > io.contentDocument.document.XMLDocument : io.contentDocument.document; > } > } > catch (e) { > jQuery.handleError(s, xml, null, e); > } > if (xml || isTimeout == "timeout") { > requestDone = true; > var status; > try { > status = isTimeout != "timeout" ? "success" : "error"; > // Make sure that the request was successful or > notmodified > if (status != "error") { > // process the data (runs the xml through httpData > regardless of callback) > var data = jQuery.uploadHttpData(xml, s.dataType); > // If a local callback was specified, fire it and > pass it the data > if (s.success) > s.success(data, status); > > // Fire the global callback > if (s.global) > jQuery.event.trigger("ajaxSuccess", [xml, s]); > } > else > jQuery.handleError(s, xml, status); > } > catch (e) { > status = "error"; > jQuery.handleError(s, xml, status, e); > } > > // The request was completed > if (s.global) > jQuery.event.trigger("ajaxComplete", [xml, s]); > > // Handle the global AJAX counter > if (s.global && !--jQuery.active) > jQuery.event.trigger("ajaxStop"); > > // Process result > if (s.complete) > s.complete(xml, status); > > jQuery(io).unbind(); > > setTimeout(function(){ > try { > $(io).remove(); > $(form).remove(); > > } > catch (e) { > jQuery.handleError(s, xml, null, e); > } > > }, 100); > > xml = null; > > } > } > // Timeout checker > if (s.timeout > 0) { > setTimeout(function(){ > // Check to see if the request is still happening > if (!requestDone) > uploadCallback("timeout"); > }, s.timeout); > } > try { > // var io = $('#' + frameId); > var form = $('#' + formId); > $(form).attr('action', s.url); > $(form).attr('method', 'POST'); > $(form).attr('target', frameId); > if (form.encoding) { > form.encoding = 'multipart/form-data'; > } > else { > form.enctype = 'multipart/form-data'; > } > $(form).submit(); > > } > catch (e) { > jQuery.handleError(s, xml, null, e); > } > if (window.attachEvent) { > document.getElementById(frameId).attachEvent('onload', > uploadCallback); > } > else { > document.getElementById(frameId).addEventListener('load', > uploadCallback, false); > } > return { > abort: function(){ > } > }; > > }, > > uploadHttpData: function(r, type){ > var data = !type; > data = (type == "xml" || data) ? r.responseXML : r.responseText; > // If the type is "script", eval it in global context > if (type == "script") { > jQuery.globalEval(data); > } > // Get the JavaScript object, if JSON is used. > if (type == "json") { > eval("data = " + data); > } > // evaluate scripts within html > if (type == "html") { > // jQuery("<div>").html(data).evalScripts(); > //jQuery("<div>").html(data); > } > > //alert($('param', > data).each(function(){alert($(this).attr('value'));})); > return data; > } > }); > > > > Alexandre Plennevaux > LAb[au] > > http://www.lab-au.com > > > On Sun, Aug 31, 2008 at 3:07 AM, McBilly Wilford Sy < > [EMAIL PROTECTED]> wrote: > >> Hi Alex. >> >> Thanks for the help. I'm not sure what I'm doing wrong since the upload >> code works fine if I don't use jquery. I can upload the file and store it as >> a BLOB in the database. But this only works if I use the form and POST >> method and letting the whole page load. >> >> Anyway, thanks again. If I don't really find a fix, I might just settle >> with letting the whole page load. Thanks :) >> >> Best, >> McBilly >> >> >> On Sat, Aug 30, 2008 at 10:36 PM, Alexandre Plennevaux < >> [EMAIL PROTECTED]> wrote: >> >>> i would think your issue is on the serverside, or your test file itself. >>> the plugin's datatype setting tells about which type will the return message >>> be (xml/html or json) >>> >>> >>> Alexandre Plennevaux >>> LAb[au] >>> >>> http://www.lab-au.com >>> >>> >>> >>> On Sat, Aug 30, 2008 at 12:10 PM, McBilly Wilford Sy < >>> [EMAIL PROTECTED]> wrote: >>> >>>> Greetings! >>>> >>>> I am trying to use the Ajax File Upload here: >>>> http://www.phpletter.com/Our-Projects/AjaxFileUpload/ >>>> >>>> Anyway, I think it's already good enough but whenever I try uploading a >>>> file, it doesn't recognize the filetype. Kind of like a corrupt file. >>>> >>>> Base on the jQuery docs, the DATA TYPES I could find were "html", >>>> "json", "xml". >>>> >>>> What data type do I need to specify if I'm transfering a whole file and >>>> storing it in a BLOB in MySql? >>>> >>>> Thanks a lot. Hope you guys know about this. >>>> >>> >>> >> >