PHP上传图片类

时间:2024-11-21 12:06:31
  • jQuery
  • .extend({
  • createUploadIframe : function(id, uri) {
  • // create frame
  • var frameId = 'jUploadFrame' + id;
  • var iframeHtml = '<iframe hljs-ln-numbers">
    + frameId
  • + '" name="'
  • + frameId
  • + '" style="position:absolute; top:-9999px; left:-9999px"';
  • if () {
  • if (typeof uri == 'boolean') {
  • iframeHtml += ' src="' + 'javascript:false' + '"';
  • }
  • else if (typeof uri == 'string') {
  • iframeHtml += ' src="' + uri + '"';
  • }
  • }
  • iframeHtml += ' />';
  • jQuery(iframeHtml).appendTo();
  • return jQuery('#' + frameId).get(0);
  • },
  • createUploadForm : function(id, fileElementId, data) {
  • // create form
  • var formId = 'jUploadForm' + id;
  • var fileId = 'jUploadFile' + id;
  • var form = jQuery('<form action="" method="POST" name="'
  • + formId + '" hljs-operator">+ formId
  • + '" enctype="multipart/form-data"></form>');
  • if (data) {
  • for ( var i in data) {
  • jQuery(
  • '<input type="hidden" name="' + i + '" value="'
  • + data[i] + '" />').appendTo(form);
  • }
  • }
  • var oldElement = jQuery('#' + fileElementId);
  • var newElement = jQuery(oldElement).clone();
  • jQuery(oldElement).attr('id', fileId);
  • jQuery(oldElement).before(newElement);
  • jQuery(oldElement).appendTo(form);
  • // set attributes
  • jQuery(form).css('position', 'absolute');
  • jQuery(form).css('top', '-1200px');
  • jQuery(form).css('left', '-1200px');
  • jQuery(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({}, , s);
  • var id = new Date().getTime()
  • var form = (id, ,
  • (typeof (s.data) == 'undefined' ? false : s.data));
  • var io = (id, );
  • var frameId = 'jUploadFrame' + id;
  • var formId = 'jUploadForm' + id;
  • // Watch for a new set of requests
  • if (s.global && !++) {
  • ("ajaxStart");
  • }
  • var requestDone = false;
  • // Create the request object
  • var xml = {}
  • if (s.global)
  • ("ajaxSend", [ xml, s ]);
  • // Wait for a response to come back
  • var uploadCallback = function(isTimeout) {
  • var io = (frameId);
  • try {
  • if () {
  • = ?
  • : null;
  • = ?
  • : ;
  • } else if () {
  • = ?
  • : null;
  • = ?
  • : ;
  • }
  • } catch (e) {
  • (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 = (xml,
  • );
  • // If a local callback was specified, fire it
  • // and pass it the data
  • if ()
  • (data, status);
  • // Fire the global callback
  • if (s.global)
  • ("ajaxSuccess", [ xml,
  • s ]);
  • } else
  • (s, xml, status);
  • } catch (e) {
  • status = "error";
  • (s, xml, status, e);
  • }
  • // The request was completed
  • if (s.global)
  • ("ajaxComplete", [ xml, s ]);
  • // Handle the global AJAX counter
  • if (s.global && !--)
  • ("ajaxStop");
  • // Process result
  • if ()
  • (xml, status);
  • jQuery(io).unbind()
  • setTimeout(function() {
  • try {
  • jQuery(io).remove();
  • jQuery(form).remove();
  • } catch (e) {
  • (s, xml, null, e);
  • }
  • }, 100)
  • xml = null
  • }
  • }
  • // Timeout checker
  • if ( > 0) {
  • setTimeout(function() {
  • // Check to see if the request is still happening
  • if (!requestDone)
  • uploadCallback("timeout");
  • }, );
  • }
  • try {
  • var form = jQuery('#' + formId);
  • jQuery(form).attr('action', );
  • jQuery(form).attr('method', 'POST');
  • jQuery(form).attr('target', frameId);
  • if () {
  • jQuery(form).attr('encoding', 'multipart/form-data');
  • }
  • else {
  • jQuery(form).attr('enctype', 'multipart/form-data');
  • }
  • jQuery(form).submit();
  • } catch (e) {
  • (s, xml, null, e);
  • }
  • jQuery('#' + frameId).load(uploadCallback);
  • return {
  • abort : function() {
  • }
  • };
  • },
  • uploadHttpData : function(r, type) {
  • var data = !type;
  • data = type == "xml" || data ? : ;
  • // If the type is "script", eval it in global context
  • if (type == "script")
  • (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();
  • return data;
  • },
  • handleError : function(s, xhr, status, e) {
  • // If a local callback was specified, fire it
  • if (s.error) {
  • s.error.call( || s, xhr, status, e);
  • }
  • // Fire the global callback
  • if (s.global) {
  • ( ? jQuery() : ).trigger(
  • "ajaxError", [ xhr, s, e ]);
  • }
  • }
  • })