Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 6 of 6
  1. #1
    New Coder
    Join Date
    Jun 2013
    Location
    Calgary AB,Canada
    Posts
    55
    Thanks
    28
    Thanked 1 Time in 1 Post

    Image Upload via AJAX - How to pass file name to server ?

    Hi,

    I am trying to upload an image to the webserver using AJAX, but am unable to pass the file name and path to the PHP script on the server side.

    This is the HTML with the JavaScript (ImageUpload01.php) which calls the PHP :

    Please do not pay much attention to lines in red/bold as those are the scripts that I wrote for testing and did not work.

    The same program I wrote to upload images without the use of AJAX and it DID WORK.
    And also, I did the exact same logic using AJAX to retrieve database record upon sending a customer ID and it also worked. But image upload in AJAX is giving me problems (just because I don't know how to pass the file name/path ).

    Code:
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
            <title>Image Upload</title>
            
            <script>        
                function showThumbnail(str)
                {
                    var xmlhttp;  
                    alert(str);
                    var params = "q=" + $_FILES['file']['name'];
                    if (str==="")
                      {
                      document.getElementById("txtHint").innerHTML="";
                      return;
                      }
                    if (window.XMLHttpRequest)
                      {// code for IE7+, Firefox, Chrome, Opera, Safari
                      xmlhttp=new XMLHttpRequest();
                      }
                    else
                      {// code for IE6, IE5
                      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                      }
                      
                    xmlhttp.open("POST","RunImageUpload01.php",true);
                    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                    xmlhttp.setRequestHeader("Content-length", params.length);
                    xmlhttp.setRequestHeader("Connection", "close");                
    
                    xmlhttp.onreadystatechange=function()
                      {
                      alert(xmlhttp.responseText);    
                      if (xmlhttp.readyState===4 && xmlhttp.status===200)
                        {
                        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
                        }
                      };
                    xmlhttp.send(params);
                }
            </script>        
            
    
            
        </head>
        <body>
            <?php
            
            ?>
            
            <form action="" > 
                <input type="file" name="file" id="file" /><br />
                <input type="button" name="submit" value="Submit" onclick="return showThumbnail(file.value);" />
            </form>        
            
            
            <div id="txtHint">
                
            </div>
    
        </body>
    </html>

    PHP Script on the server side (RunImageUpload01.php)
    Code:
    <?php
    $pName = $_POST['q'];
    $moved = move_uploaded_file($pName, "/var/www/vhosts/mywebsiteURL.com/store/mytest/images/temp/" . $pName);
    
                            if ($moved) {
                                echo "Success"
                            }
                            else {
                                echo "You fool, failure"
                            }
    
    ?>
    Please help me,


    thanks,

    Isaac

  • #2
    Senior Coder
    Join Date
    Jan 2011
    Location
    Missouri
    Posts
    4,710
    Thanks
    25
    Thanked 660 Times in 659 Posts
    Code:
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
    <title>Image Upload</title>
    
    <script>
    function showThumbnail(str){
    	var xmlhttp;
    	//alert(str);
    	var params = "q=" + str;
    	if (str===""){
    		document.getElementById("txtHint").innerHTML="";
    		return;
    	}
    	if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
    		xmlhttp=new XMLHttpRequest();
    	}else{// code for IE6, IE5
    		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    	}
    
    	xmlhttp.open("POST","RunImageUpload01.php",true);
    	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	xmlhttp.setRequestHeader("Content-length", params.length);
    	xmlhttp.setRequestHeader("Connection", "close");
    
    	xmlhttp.onreadystatechange=function(){
    		//alert(xmlhttp.responseText);
    		if (xmlhttp.readyState===4 && xmlhttp.status===200){
    			document.getElementById("picture").src = xmlhttp.responseText;
    		}
    	};
    	xmlhttp.send(params);
    }
    </script>
    </head>
    
    <body>
    
    <form action="" >
    <input type="file" name="file" id="file" value="" /><br />
    <input type="button" name="submit" value="Submit" onclick="return showThumbnail('images/'+file.value);" />
    </form>
    
    <img id="picture" src="" alt />
    
    </body>
    </html>
    and RunImageUpload01.php:

    PHP Code:
    <?php
    $img 
    $_POST["q"];
    echo 
    $img;
    ?>
    Evolution - The non-random survival of random variants.

    "If you leave hydrogen alone, for long enough, it begins to think about itself."

  • #3
    New Coder
    Join Date
    Jun 2013
    Location
    Calgary AB,Canada
    Posts
    55
    Thanks
    28
    Thanked 1 Time in 1 Post
    thanks for the reply. But its not working.

  • #4
    Senior Coder
    Join Date
    Jan 2011
    Location
    Missouri
    Posts
    4,710
    Thanks
    25
    Thanked 660 Times in 659 Posts
    Quote Originally Posted by Isaac Sureshkum View Post
    ..... its not working.
    IS NOT AN ANSWER! What is not working? The code I gave you does work! What did you do to it? Post the code your say is not working. please

    But before you do LOOK at this
    showThumbnail('images/'+file.value);" /> This is the folder where I keep my images. Did you change to the folder YOU use? Please look at the code you get and adapt it to your set up. I have no way of knowing your folder name.
    Evolution - The non-random survival of random variants.

    "If you leave hydrogen alone, for long enough, it begins to think about itself."

  • #5
    New Coder
    Join Date
    Jun 2013
    Location
    Calgary AB,Canada
    Posts
    55
    Thanks
    28
    Thanked 1 Time in 1 Post
    Thanks for the reply.

    Yes,

    I replaced 'images' with my own folder :

    Code:
    <input type="button" name="submit" value="Submit" onclick="return showThumbnail('c:\test\pics\'+file.value);" />
    As it did not work ( i.e, did not give the result that I expected ) I inserted the following code in the JavaScript function (highlighted in red) for debugging purposes.


    Code:
                function showThumbnail(str)
                {
                    var xmlhttp;  
                    alert(str);
                    .
                    .
                    .
                    .
                    .
                    .
                    xmlhttp.onreadystatechange=function()
                      {
                      alert(xmlhttp.responseText); 
                    .
                    .
                    .


    And the pop up screen gave this result :

    First alert result : "c:/test/pic/c:\fakepath\backyard.jpg"

    Second alert : blank.

    In the real world, there should be a way to get the real path name of the image being uploaded, and we don't need to hard code our folder in
    onclick="return showThumbnail('c:\test\pics\/'+file.value);"

    I loaded the program in the site, you can run it here :
    http://store.touchmedia.ca/mytest/ImageUpload02.php
    thanks.

  • #6
    Senior Coder
    Join Date
    Jan 2011
    Location
    Missouri
    Posts
    4,710
    Thanks
    25
    Thanked 660 Times in 659 Posts
    OK, I did forget to give you the upload ajax code, lol
    Here is what your not understanding.
    Code:
    But before you do LOOK at this
    showThumbnail('images/'+file.value);" /> This is the folder where I keep my images. Did you change to the folder YOU use? Please look at the code you get and adapt it to your set up. I have no way of knowing your folder name.
    Was the folder on your site, not on your computer and it has to end in a slash '/'.
    Also you sent the file/name to a div not the img src.

    If you look at this code you will see that you have to have on your site a folder titled js to hold the javascripts and one called uploads to hold the images that you upload.

    This is not my code, see the js file. You can add some error messages if you want.
    The HTML:
    Code:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=UTF-8">
    <title>AJAX File Uploader</title>
    <link rel="stylesheet" type="text/css" href="styles.css">
    
    </head>
    <body>
    <div id="mainbody" >
    		<h3>AJAX File Upload Form Using jQuery</h3>
    		<div id="upload" >Upload File</div>
    		<ul id="files" ></ul>
    </div>
    
    
    <script type="text/javascript" src="js/jquery.js" ></script> <!--     OR A LINK TO GOOGLE jquery   -->
    <script type="text/javascript" src="js/ajaxupload.3.5.js" ></script>
    <script type="text/javascript" >
    	$(function(){
    		var btnUpload=$('#upload');
    		var status=$('#status');
    		new AjaxUpload(btnUpload, {
    			action: 'upload-file.php',
    			name: 'uploadfile',
    			onSubmit: function(file, ext){
    				 if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){
                        // extension is not allowed
    					status.text('Only JPG, PNG or GIF files are allowed');
    					return false;
    				}
    				status.text('Uploading...');
    			},
    			onComplete: function(file, response){
    				//On completion clear the status
    				status.text('');
    				//Add uploaded file to list
    				if(response==="success"){
    					$('<li></li>').appendTo('#files').html('<img src="./uploads/'+file+'" alt="" /><br />'+file).addClass('success');
    				} else{
    					$('<li></li>').appendTo('#files').text(file).addClass('error');
    				}
    			}
    		});
    
    	});
    </script>
    </body>
    </html>
    THE PHP FILE(upload-file.php):
    PHP Code:
    <?php
    $uploaddir 
    './uploads/'
    $file $uploaddir basename($_FILES['uploadfile']['name']); 
     
    if (
    move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 
      echo 
    "success"
    } else {
        echo 
    "error";
    }
    ?>
    THE JQUERY YOU NEED (ajaxupload.3.5.js):
    Code:
    /**
     * Ajax upload
     * Project page - http://valums.com/ajax-upload/
     * Copyright (c) 2008 Andris Valums, http://valums.com
     * Licensed under the MIT license (http://valums.com/mit-license/)
     * Version 3.5 (23.06.2009)
     */
    
    /**
     * Changes from the previous version:
     * 1. Added better JSON handling that allows to use 'application/javascript' as a response
     * 2. Added demo for usage with jQuery UI dialog
     * 3. Fixed IE "mixed content" issue when used with secure connections
     * 
     * For the full changelog please visit: 
     * http://valums.com/ajax-upload-changelog/
     */
    
    (function(){
    	
    var d = document, w = window;
    
    /**
     * Get element by id
     */	
    function get(element){
    	if (typeof element == "string")
    		element = d.getElementById(element);
    	return element;
    }
    
    /**
     * Attaches event to a dom element
     */
    function addEvent(el, type, fn){
    	if (w.addEventListener){
    		el.addEventListener(type, fn, false);
    	} else if (w.attachEvent){
    		var f = function(){
    		  fn.call(el, w.event);
    		};			
    		el.attachEvent('on' + type, f)
    	}
    }
    
    
    /**
     * Creates and returns element from html chunk
     */
    var toElement = function(){
    	var div = d.createElement('div');
    	return function(html){
    		div.innerHTML = html;
    		var el = div.childNodes[0];
    		div.removeChild(el);
    		return el;
    	}
    }();
    
    function hasClass(ele,cls){
    	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
    }
    function addClass(ele,cls) {
    	if (!hasClass(ele,cls)) ele.className += " "+cls;
    }
    function removeClass(ele,cls) {
    	var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    	ele.className=ele.className.replace(reg,' ');
    }
    
    // getOffset function copied from jQuery lib (http://jquery.com/)
    if (document.documentElement["getBoundingClientRect"]){
    	// Get Offset using getBoundingClientRect
    	// http://ejohn.org/blog/getboundingclientrect-is-awesome/
    	var getOffset = function(el){
    		var box = el.getBoundingClientRect(),
    		doc = el.ownerDocument,
    		body = doc.body,
    		docElem = doc.documentElement,
    		
    		// for ie 
    		clientTop = docElem.clientTop || body.clientTop || 0,
    		clientLeft = docElem.clientLeft || body.clientLeft || 0,
    		
    		// In Internet Explorer 7 getBoundingClientRect property is treated as physical,
    		// while others are logical. Make all logical, like in IE8.
    		
    		
    		zoom = 1;
    		if (body.getBoundingClientRect) {
    			var bound = body.getBoundingClientRect();
    			zoom = (bound.right - bound.left)/body.clientWidth;
    		}
    		if (zoom > 1){
    			clientTop = 0;
    			clientLeft = 0;
    		}
    		var top = box.top/zoom + (window.pageYOffset || docElem && docElem.scrollTop/zoom || body.scrollTop/zoom) - clientTop,
    		left = box.left/zoom + (window.pageXOffset|| docElem && docElem.scrollLeft/zoom || body.scrollLeft/zoom) - clientLeft;
    				
    		return {
    			top: top,
    			left: left
    		};
    	}
    	
    } else {
    	// Get offset adding all offsets 
    	var getOffset = function(el){
    		if (w.jQuery){
    			return jQuery(el).offset();
    		}		
    			
    		var top = 0, left = 0;
    		do {
    			top += el.offsetTop || 0;
    			left += el.offsetLeft || 0;
    		}
    		while (el = el.offsetParent);
    		
    		return {
    			left: left,
    			top: top
    		};
    	}
    }
    
    function getBox(el){
    	var left, right, top, bottom;	
    	var offset = getOffset(el);
    	left = offset.left;
    	top = offset.top;
    						
    	right = left + el.offsetWidth;
    	bottom = top + el.offsetHeight;		
    		
    	return {
    		left: left,
    		right: right,
    		top: top,
    		bottom: bottom
    	};
    }
    
    /**
     * Crossbrowser mouse coordinates
     */
    function getMouseCoords(e){		
    	// pageX/Y is not supported in IE
    	// http://www.quirksmode.org/dom/w3c_cssom.html			
    	if (!e.pageX && e.clientX){
    		// In Internet Explorer 7 some properties (mouse coordinates) are treated as physical,
    		// while others are logical (offset).
    		var zoom = 1;	
    		var body = document.body;
    		
    		if (body.getBoundingClientRect) {
    			var bound = body.getBoundingClientRect();
    			zoom = (bound.right - bound.left)/body.clientWidth;
    		}
    
    		return {
    			x: e.clientX / zoom + d.body.scrollLeft + d.documentElement.scrollLeft,
    			y: e.clientY / zoom + d.body.scrollTop + d.documentElement.scrollTop
    		};
    	}
    	
    	return {
    		x: e.pageX,
    		y: e.pageY
    	};		
    
    }
    /**
     * Function generates unique id
     */		
    var getUID = function(){
    	var id = 0;
    	return function(){
    		return 'ValumsAjaxUpload' + id++;
    	}
    }();
    
    function fileFromPath(file){
    	return file.replace(/.*(\/|\\)/, "");			
    }
    
    function getExt(file){
    	return (/[.]/.exec(file)) ? /[^.]+$/.exec(file.toLowerCase()) : '';
    }			
    
    // Please use AjaxUpload , Ajax_upload will be removed in the next version
    Ajax_upload = AjaxUpload = function(button, options){
    	if (button.jquery){
    		// jquery object was passed
    		button = button[0];
    	} else if (typeof button == "string" && /^#.*/.test(button)){					
    		button = button.slice(1);				
    	}
    	button = get(button);	
    	
    	this._input = null;
    	this._button = button;
    	this._disabled = false;
    	this._submitting = false;
    	// Variable changes to true if the button was clicked
    	// 3 seconds ago (requred to fix Safari on Mac error)
    	this._justClicked = false;
    	this._parentDialog = d.body;
    	
    	if (window.jQuery && jQuery.ui && jQuery.ui.dialog){
    		var parentDialog = jQuery(this._button).parents('.ui-dialog');
    		if (parentDialog.length){
    			this._parentDialog = parentDialog[0];
    		}
    	}			
    					
    	this._settings = {
    		// Location of the server-side upload script
    		action: 'upload.php',			
    		// File upload name
    		name: 'userfile',
    		// Additional data to send
    		data: {},
    		// Submit file as soon as it's selected
    		autoSubmit: true,
    		// The type of data that you're expecting back from the server.
    		// Html and xml are detected automatically.
    		// Only useful when you are using json data as a response.
    		// Set to "json" in that case. 
    		responseType: false,
    		// When user selects a file, useful with autoSubmit disabled			
    		onChange: function(file, extension){},					
    		// Callback to fire before file is uploaded
    		// You can return false to cancel upload
    		onSubmit: function(file, extension){},
    		// Fired when file upload is completed
    		// WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE!
    		onComplete: function(file, response) {}
    	};
    
    	// Merge the users options with our defaults
    	for (var i in options) {
    		this._settings[i] = options[i];
    	}
    	
    	this._createInput();
    	this._rerouteClicks();
    }
    			
    // assigning methods to our class
    AjaxUpload.prototype = {
    	setData : function(data){
    		this._settings.data = data;
    	},
    	disable : function(){
    		this._disabled = true;
    	},
    	enable : function(){
    		this._disabled = false;
    	},
    	// removes ajaxupload
    	destroy : function(){
    		if(this._input){
    			if(this._input.parentNode){
    				this._input.parentNode.removeChild(this._input);
    			}
    			this._input = null;
    		}
    	},				
    	/**
    	 * Creates invisible file input above the button 
    	 */
    	_createInput : function(){
    		var self = this;
    		var input = d.createElement("input");
    		input.setAttribute('type', 'file');
    		input.setAttribute('name', this._settings.name);
    		var styles = {
    			'position' : 'absolute'
    			,'margin': '-5px 0 0 -175px'
    			,'padding': 0
    			,'width': '220px'
    			,'height': '30px'
    			,'fontSize': '14px'								
    			,'opacity': 0
    			,'cursor': 'pointer'
    			,'display' : 'none'
    			,'zIndex' :  2147483583 //Max zIndex supported by Opera 9.0-9.2x 
    			// Strange, I expected 2147483647					
    		};
    		for (var i in styles){
    			input.style[i] = styles[i];
    		}
    		
    		// Make sure that element opacity exists
    		// (IE uses filter instead)
    		if ( ! (input.style.opacity === "0")){
    			input.style.filter = "alpha(opacity=0)";
    		}
    							
    		this._parentDialog.appendChild(input);
    
    		addEvent(input, 'change', function(){
    			// get filename from input
    			var file = fileFromPath(this.value);	
    			if(self._settings.onChange.call(self, file, getExt(file)) == false ){
    				return;				
    			}														
    			// Submit form when value is changed
    			if (self._settings.autoSubmit){
    				self.submit();						
    			}						
    		});
    		
    		// Fixing problem with Safari
    		// The problem is that if you leave input before the file select dialog opens
    		// it does not upload the file.
    		// As dialog opens slowly (it is a sheet dialog which takes some time to open)
    		// there is some time while you can leave the button.
    		// So we should not change display to none immediately
    		addEvent(input, 'click', function(){
    			self.justClicked = true;
    			setTimeout(function(){
    				// we will wait 3 seconds for dialog to open
    				self.justClicked = false;
    			}, 3000);			
    		});		
    		
    		this._input = input;
    	},
    	_rerouteClicks : function (){
    		var self = this;
    	
    		// IE displays 'access denied' error when using this method
    		// other browsers just ignore click()
    		// addEvent(this._button, 'click', function(e){
    		//   self._input.click();
    		// });
    				
    		var box, dialogOffset = {top:0, left:0}, over = false;							
    		addEvent(self._button, 'mouseover', function(e){
    			if (!self._input || over) return;
    			over = true;
    			box = getBox(self._button);
    					
    			if (self._parentDialog != d.body){
    				dialogOffset = getOffset(self._parentDialog);
    			}	
    		});
    		
    	
    		// we can't use mouseout on the button,
    		// because invisible input is over it
    		addEvent(document, 'mousemove', function(e){
    			var input = self._input;			
    			if (!input || !over) return;
    			
    			if (self._disabled){
    				removeClass(self._button, 'hover');
    				input.style.display = 'none';
    				return;
    			}	
    										
    			var c = getMouseCoords(e);
    
    			if ((c.x >= box.left) && (c.x <= box.right) && 
    			(c.y >= box.top) && (c.y <= box.bottom)){			
    				input.style.top = c.y - dialogOffset.top + 'px';
    				input.style.left = c.x - dialogOffset.left + 'px';
    				input.style.display = 'block';
    				addClass(self._button, 'hover');				
    			} else {		
    				// mouse left the button
    				over = false;
    				if (!self.justClicked){
    					input.style.display = 'none';
    				}
    				removeClass(self._button, 'hover');
    			}			
    		});			
    			
    	},
    	/**
    	 * Creates iframe with unique name
    	 */
    	_createIframe : function(){
    		// unique name
    		// We cannot use getTime, because it sometimes return
    		// same value in safari :(
    		var id = getUID();
    		
    		// Remove ie6 "This page contains both secure and nonsecure items" prompt 
    		// http://tinyurl.com/77w9wh
    		var iframe = toElement('<iframe src="javascript:false;" name="' + id + '" />');
    		iframe.id = id;
    		iframe.style.display = 'none';
    		d.body.appendChild(iframe);			
    		return iframe;						
    	},
    	/**
    	 * Upload file without refreshing the page
    	 */
    	submit : function(){
    		var self = this, settings = this._settings;	
    					
    		if (this._input.value === ''){
    			// there is no file
    			return;
    		}
    										
    		// get filename from input
    		var file = fileFromPath(this._input.value);			
    
    		// execute user event
    		if (! (settings.onSubmit.call(this, file, getExt(file)) == false)) {
    			// Create new iframe for this submission
    			var iframe = this._createIframe();
    			
    			// Do not submit if user function returns false										
    			var form = this._createForm(iframe);
    			form.appendChild(this._input);
    			
    			form.submit();
    			
    			d.body.removeChild(form);				
    			form = null;
    			this._input = null;
    			
    			// create new input
    			this._createInput();
    			
    			var toDeleteFlag = false;
    			
    			addEvent(iframe, 'load', function(e){
    					
    				if (// For Safari
    					iframe.src == "javascript:'%3Chtml%3E%3C/html%3E';" ||
    					// For FF, IE
    					iframe.src == "javascript:'<html></html>';"){						
    					
    					// First time around, do not delete.
    					if( toDeleteFlag ){
    						// Fix busy state in FF3
    						setTimeout( function() {
    							d.body.removeChild(iframe);
    						}, 0);
    					}
    					return;
    				}				
    				
    				var doc = iframe.contentDocument ? iframe.contentDocument : frames[iframe.id].document;
    
    				// fixing Opera 9.26
    				if (doc.readyState && doc.readyState != 'complete'){
    					// Opera fires load event multiple times
    					// Even when the DOM is not ready yet
    					// this fix should not affect other browsers
    					return;
    				}
    				
    				// fixing Opera 9.64
    				if (doc.body && doc.body.innerHTML == "false"){
    					// In Opera 9.64 event was fired second time
    					// when body.innerHTML changed from false 
    					// to server response approx. after 1 sec
    					return;				
    				}
    				
    				var response;
    									
    				if (doc.XMLDocument){
    					// response is a xml document IE property
    					response = doc.XMLDocument;
    				} else if (doc.body){
    					// response is html document or plain text
    					response = doc.body.innerHTML;
    					if (settings.responseType && settings.responseType.toLowerCase() == 'json'){
    						// If the document was sent as 'application/javascript' or
    						// 'text/javascript', then the browser wraps the text in a <pre>
    						// tag and performs html encoding on the contents.  In this case,
    						// we need to pull the original text content from the text node's
    						// nodeValue property to retrieve the unmangled content.
    						// Note that IE6 only understands text/html
    						if (doc.body.firstChild && doc.body.firstChild.nodeName.toUpperCase() == 'PRE'){
    							response = doc.body.firstChild.firstChild.nodeValue;
    						}
    						if (response) {
    							response = window["eval"]("(" + response + ")");
    						} else {
    							response = {};
    						}
    					}
    				} else {
    					// response is a xml document
    					var response = doc;
    				}
    																			
    				settings.onComplete.call(self, file, response);
    						
    				// Reload blank page, so that reloading main page
    				// does not re-submit the post. Also, remember to
    				// delete the frame
    				toDeleteFlag = true;
    				
    				// Fix IE mixed content issue
    				iframe.src = "javascript:'<html></html>';";		 								
    			});
    	
    		} else {
    			// clear input to allow user to select same file
    			// Doesn't work in IE6
    			// this._input.value = '';
    			d.body.removeChild(this._input);				
    			this._input = null;
    			
    			// create new input
    			this._createInput();						
    		}
    	},		
    	/**
    	 * Creates form, that will be submitted to iframe
    	 */
    	_createForm : function(iframe){
    		var settings = this._settings;
    		
    		// method, enctype must be specified here
    		// because changing this attr on the fly is not allowed in IE 6/7		
    		var form = toElement('<form method="post" enctype="multipart/form-data"></form>');
    		form.style.display = 'none';
    		form.action = settings.action;
    		form.target = iframe.name;
    		d.body.appendChild(form);
    		
    		// Create hidden input element for each data key
    		for (var prop in settings.data){
    			var el = d.createElement("input");
    			el.type = 'hidden';
    			el.name = prop;
    			el.value = settings.data[prop];
    			form.appendChild(el);
    		}			
    		return form;
    	}	
    };
    })();
    Evolution - The non-random survival of random variants.

    "If you leave hydrogen alone, for long enough, it begins to think about itself."


  •  

    Tags for this Thread

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •