Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

IEVADS

Šajā rakstā ir aprakstīts daudzformātu struktūras paraugs, ko var lejupielādēt. Šis parauga kods parāda, kā augšupielādēt un lejupielādēt failus no vietējā vai attālā servera ASP.net. Parauga pakotnes var lejupielādēt no šādas lejupielādes ikonas. Ir pieejamas gan c# un Visual Basic .NET valodas pakotnes paraugs.


Šis parauga kods parāda, kā augšupielādēt un lejupielādēt failus no servera, kas nav domēna lietotāja pieprasījuma apjomu. Funkcionalitāte tiek nodrošināts pārsūtīt failus, izmantojot protokolu HTTP un FTP. Arī šī koda paraugu izmanto vienotais resursu identifikators (URI), lai identificētu failu servera atrašanās vietas. Atslēgu izmanto šī koda paraugu klases klases WebClient un WebRequest klase.

Grūtības līmenis




alternate text

Informācija par lejupielādi

Lai lejupielādētu šo koda paraugu, noklikšķiniet uz vienas no šīm saitēm:

Tehniskais pārskats

Tas ir diezgan vienkārši augšupielādēt un lejupielādēt failus no attālā servera ASP.net. .NET Framework klašu bibliotēka sniedz dažu objektu Vieglpiekļuves pieprasījumu. WebClient klases ir augsta līmeņa klases, kas atvieglos servera mijiedarbību. WebRequest objekti izmanto WebClient klases veikt pieprasījumus. HttpWebRequest un FtpWebRequest klases implementācijas noteiktu protokola anotācijas WebRequest klases. HttpWebRequest ievieš GET un POST metodes augšupielādes un lejupielādes faili HTTP protokolu. FtpWebRequest ievieš protokola FTP augšupielādēt un lejupielādēt failus glabāt un pielikumiem metodes.


Šī koda paraugu izmanto UploadData un DownloadData metodes WebClient klases pārsūtīt datus no attālā servera URI. UploadData metodi ar HTTP protokolu izvietošanas metodi un "application/x-www-form-urlencoded" interneta vides tips. DownloadData metodi FileStream objekts saglabāt ienākošo datu plūsma un rakstīt byte masīva lokālā failā.

Parauga pārskats

Šis parauga kods, jūs atradīsiet RemoteFileForm.aspx fails, kurā tiek izskaidrots, kā izmantot divas jaunas klasēm:

  • RemoteUpload

  • RemoteDownload

RemoteUpload klase

Klases RemoteUpload ir divas bērnu klases. Šīs klases HttpRemoteUpload un FtpRemoteUpload. Abu klašu izmantot RemoteUpload veidotāja. Klases RemoteUpload nepieciešams baitu klāstu datu fails un servera URI. Varat arī norādīt nosaukumu, kas jāizmanto augšupielādēt failu. Klases FtpRemoteUpload izmanto FtpWebRequest tieši (nevis izmantojot līmeņa WebClient klases) rīkoties protokola FTP īpašām prasībām.


Skatiet plašāku informāciju par RemoteUpload klases klases šādas definīcijas:
public class HttpRemoteUpload : RemoteUpload
{
public HttpRemoteUpload(byte[] fileData, string fileNamePath, string urlString)
: base(fileData, fileNamePath, urlString)
{

}

public override bool UploadFile()
{
byte[] postData;
try
{
postData = this.FileData;
using (WebClient client = new WebClient())
{
client.Credentials = CredentialCache.DefaultCredentials;
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
client.UploadData(this.UrlString, "PUT", postData);
}

return true;
}
catch (Exception ex)
{
throw new Exception("Failed to upload", ex.InnerException);
}

}
}

public class FtpRemoteUpload : RemoteUpload
{
public FtpRemoteUpload(byte[] fileData, string fileNamePath, string urlString)
: base(fileData, fileNamePath, urlString)
{

}

public override bool UploadFile()
{
FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(this.UrlString);
reqFTP.KeepAlive = true;
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
reqFTP.UseBinary = true;
reqFTP.ContentLength = this.FileData.Length;

int buffLength = 2048;
byte[] buff = new byte[buffLength];
MemoryStream ms = new MemoryStream(this.FileData);

try
{
int contenctLength;
using (Stream strm = reqFTP.GetRequestStream())
{
contenctLength = ms.Read(buff, 0, buffLength);
while (contenctLength > 0)
{
strm.Write(buff, 0, contenctLength);
contenctLength = ms.Read(buff, 0, buffLength);
}
}

return true;
}
catch (Exception ex)
{
throw new Exception("Failed to upload", ex.InnerException);
}
}

} RemoteFileForm.cs failā, noklikšķinot uz pogas augšupielādēt RemoteUpload objekta gadījumu tiek izveidots. Cauri servera URI un fiziskā lokālā faila ceļš kā parametriem, lai izveidotu objektu.


Piezīme. Ja netiek norādīts faila nosaukumu izmanto, lai saglabātu failu serverī, sistēma automātiski ģenerēt faila nosaukums saskaņā ar pašreizējo datumu un laiku serverī. Datums un laiks ir precīza milisekunžu. Kad ir pabeigta UploadData metodi, rezultāts tiek parādīts pašreizējā lapā.

RemoteDownload klase

Klases RemoteDownload ir divas bērnu klases. Šīs klases HttpRemoteDownload un FtpRemoteDownload. Klases RemoteDownload nepieciešams URI resursu un vietējā fiziskajam direktorijam. RemoteDownload klases pārbaudes, pārliecinieties, vai pastāv resursu URI pirms lejupielādes tiek startēts. Klases iegūst dati atbildi no servera, un pēc tam raksta šo byte masīva FileStreamstraumi. Klases FtpRemoteDownload izmanto FtpWebRequest tieši (nevis izmantojot līmeņa WebClient klases) rīkoties protokola FTP īpašām prasībām.


Skatiet plašāku informāciju par RemoteDownload klases klases šādas definīcijas:
public class HttpRemoteDownload : RemoteDownload
{
public HttpRemoteDownload(string urlString, string descFilePath)
: base(urlString, descFilePath)
{

}

public override bool DownloadFile()
{
string fileName = System.IO.Path.GetFileName(this.UrlString);
string descFilePathAndName =
System.IO.Path.Combine(this.DescFilePath, fileName);
try
{
WebRequest myre = WebRequest.Create(this.UrlString);
}
catch
{
return false;
}
try
{
byte[] fileData;
using (WebClient client = new WebClient())
{
fileData = client.DownloadData(this.UrlString);
}
using (FileStream fs =
new FileStream(descFilePathAndName, FileMode.OpenOrCreate))
{
fs.Write(fileData, 0, fileData.Length);
}
return true;
}
catch (Exception ex)
{
throw new Exception("download field", ex.InnerException);
}
}
}

public class FtpRemoteDownload : RemoteDownload
{
public FtpRemoteDownload(string urlString, string descFilePath)
: base(urlString, descFilePath)
{

}

public override bool DownloadFile()
{
FtpWebRequest reqFTP;

string fileName = System.IO.Path.GetFileName(this.UrlString);
string descFilePathAndName =
System.IO.Path.Combine(this.DescFilePath, fileName);

try
{

reqFTP = (FtpWebRequest)FtpWebRequest.Create(this.UrlString);
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;


using (FileStream outputStream = new FileStream(descFilePathAndName, FileMode.OpenOrCreate))
using (FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse())
using (Stream ftpStream = response.GetResponseStream())
{
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize];
readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
}
}
return true;
}

catch (Exception ex)
{
throw new Exception("upload failed", ex.InnerException);
}
}
}
Piezīme. Lai iegūtu papildinformāciju par to, kā izveidot un izvietot lietojumprogrammas paraugs, skatiet lejupielādes pakotnē ietvertajā failā.


Valodas

Šī koda paraugu ir pieejams programmas šādās valodās:

Valoda

Projekta nosaukums

Visual c#

CSRemoteUploadAndDownload

Visual Basic.NET

VRemoteUploadAndDownload

Tehnoloģiju kategorijā

  • ASP.NET 2.0

  • ASP.NET 3.5

  • ASP.NET 4.0

Atsauces

Lai iegūtu papildinformāciju par WebClient klasi, apmeklējiet šo Microsoft izstrādātāju (MSDN) vietni:

Vispārīga informācija par WebClient klaseLai iegūtu papildinformāciju par UploadData metodi, apmeklējiet šo MSDN vietni:

Vispārīga informācija par UploadData metodiLai iegūtu papildinformāciju par DonwloadData metodi, apmeklējiet šo MSDN vietni:

Vispārīga informācija par DonwloadData metodiLai iegūtu papildinformāciju par FtpWebRequest metodi, apmeklējiet šo MSDN vietni:

Vispārīga informācija par metodi FtpWebRequestPapildinformāciju par to, kā augšupielādēt failus, izmantojot FTP, apmeklējiet šo MSDN vietni:

Kā augšupielādēt failus, izmantojot FTP

Papildinformācija

Kas ir universālais kodu struktūra?

Universālais kodu struktūra parāda lielākā daļa Microsoft izstrādes tehnoloģijas, izmantojot citu programmēšanas valodu kodu paraugi. Katrs piemērs ir rūpīgi atlasīti veido un dokumentēta parādīt vienu kopēju kodu gadījumā. Papildinformāciju par vienkorpusa kodu struktūra, apmeklējiet šo Microsoft vietni:

http://1code.codeplex.com

Kā atrast vairāk daudzformātu kodu struktūra paraugi

Lai atrastu papildu daudzformātu kodu struktūra paraugus, meklējiet "kbcodefx" kopā ar saistītiem atslēgvārdiem Microsoft atbalsta vietni. Vai, apmeklējiet šo Microsoft vietni:

Universālais kodu struktūra paraugi

Ātras publicēšanas atruna

Korporācija Microsoft un/vai tās atbilstošie piegādātāji nesniedz nekādas garantijas par piemērotību, uzticamību vai precizitāti iekļautās informācijas un ar to saistīto attēlu. Šāda informācija un ar to saistītie attēli tiek nodrošināta tāda, kāda tā ir, bez jebkāda veida garantijas. Microsoft un/vai tās atbilstošie piegādātāji atsakās atsakās no jebkādām garantijām un nosacījumiem attiecībā uz šo informāciju un saistītās grafikas, ieskaitot visas netiešās garantijas un nosacījumus par piemērotību pārdošanai, atbilstību noteiktam mērķim, ieguldīto grūti, īpašumtiesības un tiesību ievērošanu. Jūs īpaši piekrītat, nekādā gadījumā Microsoft un/vai tās piegādātāji ir atbildīgi par jebkādiem tiešiem, netiešiem, soda, nejaušiem, tīšiem, nejaušiem zaudējumiem vai kaitējumiem nekāda ieskaitot bez ierobežojuma, atlīdzību par lietošanu, datu zudumu vai zaudējumiem, kas izriet no vai nekādā veidā saistīti ar izmantošanu vai nespēja izmantot iekļautās informācijas un ar to saistīto attēlu, pamatojoties uz līgumu, tiesību pārkāpums, nolaidība, nepārprotamu atbildību vai citādi, pat tad, ja ir korporācijas Microsoft vai tās piegādātājiem ir informēta par zaudējumu iespējamību.

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×