views:

201

answers:

1

I'm implementing a file upload service in my project

I have java script code that fetches the files as a list of files to be uploaded to a server.

  • In order to get file upload working I'd like to ask how I would retrieve the list of the files after the max 6 files have been specified by the user? To start with I know that list would be stored in a fileslist array/hash

  • Eventually I'm exploring using a library to execute the file upload service, I've had a look at the – commons fileupload - and the spring multipart uploads. what would be an efficient way forward in implementing this upload service

Code Snippet Below

$(document).ready(function(){   
var fileMax = 6;
$('#asdf').after('<div id="files_list" style="border:1px solid #666;padding:5px;background:#fff;" class="normal-gray">Files (maximum '+fileMax+'):</div>');
$("input.upload").change(function(){
doIt(this, fileMax);
});
}); 




$(document).ready(function(){   
var fileMax = 6;
$('#asdf').after('<div id="files_list" style="border:1px solid #666;padding:5px;background:#fff;" class="normal-gray">Files (maximum '+fileMax+'):</div>');
$("input.upload").change(function(){
doIt(this, fileMax);
});
}); 

function doIt(obj, fm) {
if($('input.upload').size() > fm) {alert('Max files is '+fm); obj.value='';return true;}
$(obj).hide();
$(obj).parent().prepend('<input type="file" class="upload" name="fileX[]" />').find("input").change(function() {doIt(this, fm)});
var v = obj.value;
if(v != '') {
$("div#files_list").append('<div>'+v+'<input type="button" class="remove" value="Delete" style="margin:5px;" class="text-field"/></div>')
.find("input").click(function(){
$(this).parent().remove();
$(obj).remove();
return true;
});
}
};

my form is as follows:

<table border="0" cellspacing="0" cellpadding="8">
      <tr>
        <td><input type="file" id="element_input" class="upload" name="fileX[]" /></td>
        </tr>
      <tr>
        <td><label>
          <textarea name="textarea" cols="65" rows="4" class="text-field" id="textarea">Add a description</textarea>
        </label></td>
        </tr>
      <tr>
        <td><input name="Submit" type="button" class="text-field" id="send" value="Submit" /></td>
        </tr>
      </table><br />
+1  A: 

I don't think you're going to have the desired outcome with this route. I'd strongly suggest the yahoo uploader (javascript+flash). It's open source, allows multiple file uploads, ajax/flash based, super easy to setup.

http://developer.yahoo.com/yui/examples/uploader/uploader-simple-button.html

used2could