Jika Anda ingin mewujudkan fungsi mengunggah sejumlah file, klik tombol untuk menambahkan kotak unggah file, yang telah Anda lihat di hard drive jaringan sebelumnya. Saya tahu cara menambahkan kontrol unggahan file menggunakan JavaScript. Masalahnya adalah kontrol Html ditambahkan, dan saya tidak tahu cara membuat sisi server mendapatkan file tersebut.
Jadi saya mencari di Google untuk "ASP.NET multiple file upload", dan saya menemukan artikel berjudul "Menerapkan multiple file upload di ASP.NET". Artikel tersebut diimplementasikan di VB.NET, dan fungsinya sama persis dengan apa Saya ingin. Saya terutama ingin melihat bagaimana server memperoleh file yang diunggah oleh klien. Setelah membaca kode di artikel, ternyata sangat sederhana diunggah oleh browser klien. Saya menggunakan C# Saya menulis kode sederhana, awalnya berpikir itu akan baik-baik saja, tetapi tiba-tiba, setelah mengunggah 3 gambar, System.Web.HttpContext.Current.Request.Files mengembalikan 0 format file.
Entah kenapa, tapi saya melihat kodenya. Sederhana sekali dan tidak mungkin salah. Kemudian saya melihat beberapa artikel lain di hasil pencarian Google karya asli. Ada dua contoh karya asli di website penulis. Ada dua versi, satu VB.NET dan yang lainnya C# lokal dan menjalankannya. Itu berhasil, jadi mengapa kode yang saya tulis tidak berfungsi? Saya berulang kali membandingkan perbedaan antara kode saya dan kode di artikel, mencoba beberapa tempat, dan akhirnya menemukan bahwa itu tidak ada hubungannya dengan tempat lain. Alasannya adalah <form id="form1" runat="server" enctype=". multipart/form- data"> atribut enctype, halaman yang dibuat di VS 2005 tidak memiliki atribut ini, tetapi contoh artikel memilikinya. Saya kemudian menambahkan enctype="multipart/form-data" dan System.Web.HttpContext.Current.Request .Files menjadi Jumlah file yang dapat diperoleh secara normal.
Mungkin halaman yang dibuat pada VS 2003 memiliki atribut ini secara default, jika tidak, penulis atribut penting tersebut akan menyebutkannya di artikel.
lihat:
"Menerapkan unggahan banyak file di ASP.NET"
Kode pengujian yang saya buat:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Demo._Default" %>
< ! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<bahasa skrip="JavaScript">
fungsi tambahkanFile()
{
var str = '<INPUT type='file' size='50' NAMA='File'>'
document.getElementById('File Saya').insertAdjacentHTML("beforeEnd",str)
}
</skrip>
<html xmlns=" http://www.w3.org/1999/xhtml " >
<head runat="server">
<title>Halaman Tanpa Judul</title>
</kepala>
<tubuh>
<form id="form1" runat="server" enctype="multipart/form-data">
<input type="button" value="Tambahkan" onclick="addFile()">
<input onclick="ini.form.reset()" type="button" value="Reset(ReSet)">
<asp:Button Runat="server" Text="Unggah" ID="Unggah" OnClick="Upload_Click1" ></asp:Button>
<div id="File Saya">
<masukan tipe="file" nama="File" />
</div>
</bentuk>
</tubuh>
</html>
menggunakan Sistem;
menggunakan Sistem.Data;
menggunakan Sistem.Konfigurasi;
menggunakan Sistem.Koleksi;
menggunakan Sistem.Web;
menggunakan Sistem.Web.Keamanan;
menggunakan Sistem.Web.UI;
menggunakan Sistem.Web.UI.WebControls;
menggunakan System.Web.UI.WebControls.WebParts;
menggunakan
Demo namespace
System.Web.UI.HtmlControls;
{
kelas parsial publik _Default : System.Web.UI.Page
{
dilindungi kekosongan Page_Load (pengirim objek, EventArgs e)
{
}
dilindungi kekosongan Upload_Click1(pengirim objek, EventArgs e)
{
HttpFileCollection _files = Sistem.Web.HttpContext.Current.Request.Files;
untuk (int i = 0; i < _files.Count; i++)
{
_files[i].SaveAs(Server.MapPath("~/Files/" + _files[i].NamaFile));
}
}
}
}
http://bg5sbk.cnblogs.com/archive/2006/06/11/mulitfileuploadtest.html