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. >>> >> >> >