一个图片批量上传的例子,只有前台部分 这种用js添加的行,页面源文件里也看不到代码,不知道该如何设置为runat="server",后台里就更不知道怎么取到它添加进去的文件名,来这里求救代码不多,方便大家,注释我就没去掉,请帮帮忙,先谢谢了
<script type="text/javascript">function MultiSelector( list_target, max ) { // Where to write the list
this.list_target = list_target;
// How many elements?
this.count = 0;
// How many elements?
this.id = 0;
// Is there a maximum?
if( max ) {
this.max = max;
} else {
this.max = -1;
};
/**//**
* Add a new file input element
*/
this.addElement = function( element ) { // Make sure it's a file input element
if( element.tagName == 'INPUT' && element.type == 'file' ) { // Element name -- what number am I?
element.name = 'file_' + this.id++;
// Add reference to this object
element.multi_selector = this; // What to do when a file is selected
element.onchange = function() { // New file input
var new_element = document.createElement( 'input' );
new_element.type = 'file';
new_element.size = 1;
new_element.className = "addfile"; // Add new element
this.parentNode.insertBefore( new_element, this ); // Apply 'update' to element
this.multi_selector.addElement( new_element ); // Update list
this.multi_selector.addListRow( this ); // Hide this: we can't use display:none because Safari doesn't like it
this.style.position = 'absolute';
this.style.left = '-1000px'; };
// If we've reached maximum number, disable input element
if( this.max != -1 && this.count >= this.max ) {
element.disabled = true;
}; // File element counter
this.count++;
// Most recent element
this.current_element = element;
} else {
// This can only be applied to file input elements!
alert( 'Error: not a file input element' );
}; };
/**//**
* Add a new row to the list of files
*/
this.addListRow = function( element ) { // Row div
var new_row = document.createElement( 'div' );
// Delete button
var new_row_button = document.createElement( 'input' );
new_row_button.type = 'image';
new_row_button.src = '../images/delete2.gif';
new_row_button.alt = '删除';
// References
new_row.element = element; // Delete function
new_row_button.onclick= function() { // Remove element from form
this.parentNode.element.parentNode.removeChild( this.parentNode.element ); // Remove this row from the list
this.parentNode.parentNode.removeChild( this.parentNode ); // Decrement counter
this.parentNode.element.multi_selector.count--; // Re-enable input element (if it's disabled)
this.parentNode.element.multi_selector.current_element.disabled = false; // Appease Safari
// without it Safari wants to reload the browser window
// which nixes your already queued uploads
return false;
}; // Set row value
new_row.innerHTML = element.value;
// Add button
new_row.appendChild( new_row_button ); // Add it to the list
this.list_target.appendChild( new_row );
};};
</script>
</head><body>
<form id="form1" runat="server"><div class="wrapper padding10"> Files:
<div id="files_list" class="border" style="padding:5px;height:100px;width:600px;"></div>
<div class="padding5">
<a href="#" class="addfile">
<input id="my_file_element" class="addfile" type="file" name="file_1" size="1" />
</a>
<asp:Button ID="submit" runat="server" Text="上 传" OnClick="submit_Click" />
</div></div><script type="text/javascript">
<!-- Create an instance of the multiSelector class, pass it the output target and the max number of files -->
var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 5 );
<!-- Pass in the file element -->
multi_selector.addElement( document.getElementById( 'my_file_element' ) );
</script>
<script type="text/javascript">function MultiSelector( list_target, max ) { // Where to write the list
this.list_target = list_target;
// How many elements?
this.count = 0;
// How many elements?
this.id = 0;
// Is there a maximum?
if( max ) {
this.max = max;
} else {
this.max = -1;
};
/**//**
* Add a new file input element
*/
this.addElement = function( element ) { // Make sure it's a file input element
if( element.tagName == 'INPUT' && element.type == 'file' ) { // Element name -- what number am I?
element.name = 'file_' + this.id++;
// Add reference to this object
element.multi_selector = this; // What to do when a file is selected
element.onchange = function() { // New file input
var new_element = document.createElement( 'input' );
new_element.type = 'file';
new_element.size = 1;
new_element.className = "addfile"; // Add new element
this.parentNode.insertBefore( new_element, this ); // Apply 'update' to element
this.multi_selector.addElement( new_element ); // Update list
this.multi_selector.addListRow( this ); // Hide this: we can't use display:none because Safari doesn't like it
this.style.position = 'absolute';
this.style.left = '-1000px'; };
// If we've reached maximum number, disable input element
if( this.max != -1 && this.count >= this.max ) {
element.disabled = true;
}; // File element counter
this.count++;
// Most recent element
this.current_element = element;
} else {
// This can only be applied to file input elements!
alert( 'Error: not a file input element' );
}; };
/**//**
* Add a new row to the list of files
*/
this.addListRow = function( element ) { // Row div
var new_row = document.createElement( 'div' );
// Delete button
var new_row_button = document.createElement( 'input' );
new_row_button.type = 'image';
new_row_button.src = '../images/delete2.gif';
new_row_button.alt = '删除';
// References
new_row.element = element; // Delete function
new_row_button.onclick= function() { // Remove element from form
this.parentNode.element.parentNode.removeChild( this.parentNode.element ); // Remove this row from the list
this.parentNode.parentNode.removeChild( this.parentNode ); // Decrement counter
this.parentNode.element.multi_selector.count--; // Re-enable input element (if it's disabled)
this.parentNode.element.multi_selector.current_element.disabled = false; // Appease Safari
// without it Safari wants to reload the browser window
// which nixes your already queued uploads
return false;
}; // Set row value
new_row.innerHTML = element.value;
// Add button
new_row.appendChild( new_row_button ); // Add it to the list
this.list_target.appendChild( new_row );
};};
</script>
</head><body>
<form id="form1" runat="server"><div class="wrapper padding10"> Files:
<div id="files_list" class="border" style="padding:5px;height:100px;width:600px;"></div>
<div class="padding5">
<a href="#" class="addfile">
<input id="my_file_element" class="addfile" type="file" name="file_1" size="1" />
</a>
<asp:Button ID="submit" runat="server" Text="上 传" OnClick="submit_Click" />
</div></div><script type="text/javascript">
<!-- Create an instance of the multiSelector class, pass it the output target and the max number of files -->
var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 5 );
<!-- Pass in the file element -->
multi_selector.addElement( document.getElementById( 'my_file_element' ) );
</script>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货