chciałbym przyjrzeć się tej tutorial z DotNetCurry który pokazuje, jak utworzyć wielokrotne przesyłanie plików przy użyciu jQuery obsłużyć wielokrotne przesyłanie plików do ASP Strona .NET. Jest zbudowany przy użyciu ASP.NET 3.5, ale nie powinno to mieć znaczenia, jeśli korzystasz z .NET 4 - nie ma w tym nic szalonego.
Ale kluczem jest to, że wtyczka jQuery pozwoli ci przesłać kolekcję plików na serwer. Kod ASP.NET za które będzie obsługiwać poprzez zapętlenie poprzez Request.Files
kolekcji:
HttpFileCollection hfc = Request.Files;
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
if (hpf.ContentLength > 0)
{
hpf.SaveAs(Server.MapPath("MyFiles") + "\\" +
System.IO.Path.GetFileName(hpf.FileName));
Response.Write("<b>File: </b>" + hpf.FileName + " <b>Size:</b> " +
hpf.ContentLength + " <b>Type:</b> " + hpf.ContentType + " Uploaded Successfully <br/>");
}
}
Można by umieścić ten kod w swoim poradniku w procedurze obsługi zdarzenia insertButton_Click
- zasadniczo umieszczając tworzenie blob i przesyłanie do przechowywania blob wewnątrz wyżej blok kodu if(hpf.ContentLength>0)
.
Więc pseudo-kod może wyglądać następująco:
protected void insertButton_Click(object sender, EventArgs e)
{
HttpFileCollection hfc = Request.Files;
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
// Make a unique blob name
string extension = System.IO.Path.GetExtension(hpf.FileName);
// Create the Blob and upload the file
var blob = _BlobContainer.GetBlobReference(Guid.NewGuid().ToString() + extension);
blob.UploadFromStream(hpf.InputStream);
// Set the metadata into the blob
blob.Metadata["FileName"] = fileNameBox.Text;
blob.Metadata["Submitter"] = submitterBox.Text;
blob.SetMetadata();
// Set the properties
blob.Properties.ContentType = hpf.ContentType;
blob.SetProperties();
}
}
Ponownie, jest to po prostu pseudo-code, więc jestem przy założeniu, że to w jaki sposób to działa. Nie testowałem składni, ale myślę, że jest blisko.
Mam nadzieję, że to pomoże. Powodzenia!