русский
Germany.ruForen → Архив Досок→ Programmierung

скачать неизвестное кол-во файлов в одной форме

16.03.07 00:53
Re: скачать неизвестное кол-во файлов в одной форм
 
  scorpi_ скептик
in Antwort tavy 15.03.07 18:51
Во-первых размер файла тебе на клайенте никто прочитать не даст из соображений безопасности.
А остальное несложно. Вот: http://scorpix.strana.germany.ru/mfu/
html-file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Multiple file upload</title>
<link href='default.css' rel='stylesheet' type='text/css'>
<script type='text/javascript' src='prototype.js'></script>
<script type='text/javascript' src='multiple_file_input.js'></script>
</head>
<body>
<form action='upload.html' method='post' enctype='multipart/form-data'>
<div id='file_cont'><input id='file_0' name='file_0' type='file'></div>
<div id='file_list'>Files to upload:</div>
</form>
</body>
</html>


и javascript-file

function $C( parent_element, new_tag, new_id, new_className )
{
var temp = document.createElement( new_tag );
if ( new_id )
temp.id = new_id;
if ( new_className )
temp.className = new_className;
parent_element.appendChild( temp );
return temp;
}
var MutipleFileInput = {
next_file_number : 1,
add_file : function( event )
{
var e = Event.element( event );
Event.stopObserving( e, 'change', MutipleFileInput.add_file );
e.style.display = 'none';
var d = $C( $('file_list'), 'div', 'file_label_' + e.file_number, 'file_label' );
d.appendChild( document.createTextNode( e.value ) );
var btn = $C( d, 'span', null, 'file_remove_button' );
btn.appendChild( document.createTextNode( 'remove' ) );
Event.observe( btn, 'click', MutipleFileInput.remove_file );
btn.file_number = e.file_number;
var new_file_input = $C( $('file_cont'), 'input', 'file_' + MutipleFileInput.next_file_number, null );
new_file_input.name = new_file_input.id;
new_file_input.type = 'file';
new_file_input.file_number = MutipleFileInput.next_file_number;
Event.observe( new_file_input, 'change', MutipleFileInput.add_file );
MutipleFileInput.next_file_number++;
},
remove_file : function( event )
{
var e = Event.element( event );
Event.stopObserving( e, 'change', MutipleFileInput.add_file );
Element.remove( $( 'file_' + e.file_number ) );
Element.remove( e.parentNode );
}
}
Event.observe( self, 'load', function() {
Event.observe( $('file_0'), 'change', MutipleFileInput.add_file );
$('file_0').file_number = 0;
} );


 

Sprung zu