ASPX Menerima file halaman ASPX sangat sederhana, cukup gunakan htmlinputFile, tidak apa -apa, tetapi jika Anda menerima file posting halaman HTML
Tidak mudah ditangani.
Konten file, jenis, ukuran, posisi penyimpanan khusus, di conmfig.xml
Konten halaman html: (dari fckeditor)
<Html>
<head>
<title> fckeditor -Uploaders tes </iteme>
<bahasa skrip = "javascript">
Fungsi sendFile ()
{{
var suploaderurl = cmbuploaderurl.value;
If (suploaderurl.length == 0)
suploaderurl = txtcustomall.value;
If (suploaderurl.length == 0)
{{
Peringatan ('Harap berikan URL khusus Anda atau pilih yang default');
Kembali;
}
Eurl.innerHtml = SuploaderUrl;
txturl.Value = '';
frmupload.action = suploaderurl;
frmupload.submit ();
}
Fungsi onuploadcompleted (errornumber, fileurl, nama file, custmssg)
{{
Switch (errornumber)
{{
Kasus 0: // Tidak Ada Kesalahan
txturl.value = fileurl;
Alert ('file yang diunggah tanpa kesalahan');
Merusak;
Kasus 1: // Kesalahan Kustom
Peringatan (custmssg);
Merusak;
Kasus 10: // Peringatan Kustom
txturl.value = fileurl;
Peringatan (custmssg);
Merusak;
Kasus 201:
txturl.value = fileurl;
Peringatan ('File dengan nama yang sama tersedia Almedy. File unggahan telah diganti namanya menjadi "' + nama file + '");
Merusak;
Kasus 202:
Alert ('file tidak valid');
Merusak;
Kasus 203:
Peringatan ("Kesalahan Keamanan. Anda mungkin tidak boleh tidak cukup izin untuk diunggah. Silakan periksa server Anda.");
Merusak;
BAWAAN:
peringatan ('kesalahan pada unggahan file. eric number:' + errornumber);
Merusak;
}
}
</script>
</head>
<body>
<Tabel cellspacing = "0" cellpadding = "0">
<tr>
<td>
<Tabel cellspacing = "0" cellpadding = "0">
<tr>
<Td now4>
Pilih "Pengunggah File" yang akan digunakan: <br>
<Pilih id = "cmBuploaderUrl" name = "select1">
<Opsi Pilih Value = "ASP/UEDLOAD.ASP"> ASP </pection>
<Option value = "php/unggah.php"> php </pection>
<Option value = "unggah
</pilih>
</td>
<TD Now44 & NBSP;
<td>
URL Pengunggah Kustom: <br>
<input id = "txtcustomall" dinonaktifkan type = "text">
</td>
</tr>
</boable>
<br>
<Tabel cellspacing = "0" cellpadding = "0">
<tr>
<Td now4>
<Form id = "frmupload" target = "unggahWindow" enctype = "multipart/form-data" action = "" Method = "Post">
Unggah file baru: <br>
<input type = "file" name = "newfile"> <br>
<input type = "tombol" value = "Kirim ke server">
</form>
</td>
<Td> & nbsp;
<value td = "top">
URL file yang diunggah: <br>
<input id = "txturl" readonly type = "text">
</td>
</tr>
</boable>
<br>
Posting URL: <span id = "Eurl"> & nbsp;
</td>
</tr>
<tr>
<td>
<ifme name = "unggahWindow"> </iframe>
</td>
</tr>
</boable>
</body>
</html>
konten unggah.aspx:
<%@ page language = "c#" autoeventwireup = "true" codefile = "unggah.aspx.cs" mewariskan = "unggah"%>%>
Berikut ini adalah kode latar belakang:
menggunakan sistem;
menggunakan System.data;
menggunakan System.configuration;
menggunakan System.Collections;
menggunakan system.io;
menggunakan System.Text;
menggunakan System.web;
Menggunakan System.Web.Security;
menggunakan system.web.ui;
menggunakan system.web.ui.webControls;
menggunakan system.web.ui.webControls.webparts;
menggunakan system.web.ui.htmlControls;
menggunakan System.xml;
Menggunakan System.Collections.Spesialisasi;
Upload kelas parsial publik: System.web.ui.page
{{
Public void sendResults (int errornumber, string fileurl, string fileName, string custommsg)
{{
stringBuilder text = new StringBuilder ();
text.append ("<script type =/" text/javascript/">">);
Text.append ("window.parent.onuploadcompleted (" + errorrnumber + ",/" + fileurl.replace ("/", "//" "),/" + filename.replace ("/" "," // /"") + "/",/" + Custommsg.replace ("/"", "//" "));/n");/n ");/n");/n ");/ n ");/n");/n ");/n");/n ");
text.append ("</script>");
response.write (text.tostring ());
response.end ();
}
Public void get getFig (string type, out string [] diizinkan, out string [] DENYEDEXT, out long maxSize), out long maxSize)
{{
xmldocumet doc = new xmldocument ();
doc.load (server.mappath (@"./ config.xml");
xmlement root = doc.documentElement;
Xmlnodelist imageexodelist = root.geteLementsByTagname (type);
Diizinkan = imagenodelist [0] .firstchild.innerText.trim ().
DENYEDEXT = Imagenodelist [0] .LASTCHILD.INNERTEXT.TRIM ().
savePath = root.getElementsByByTagname ("UserPath").
mencoba
{{
MaxSize = Convert.toint64 (root.getElementsbyTagname ("MaxSize"). Item (0) .innerText.trim ()););););););); ;););););););) Reeext.trim ());););););););
}
Catch {MaxSize = 10*1024;}
}
Lindung void page_load (pengirim objek, EventArgs e)
{{
string [] diizinkan = string baru [] {}, DENYEDEXT = string baru [] {};
string savePath = string.empty;
Long MaxSize = 10000;
string type = request.queryString ["type"];
if (type! = null && type! = string.empty)
Type = type.tolower ();
kalau tidak
type = "file";
if (type == "gambar")
{{
getConfig ("Image", out diizinkan, keluar DENYEDEXT, keluar savePath, out maxsize);
}
if (type == "file")
{{
getConfig ("file", out diizinkan, keluar denyedext, out savePath, out maxsize);
}
if (type == "flash"))
{{
getConfig ("flash", out diizinkan, keluar DENYEDEXT, keluar savePath, out maxsize);
}
ifpath == string.empty ||
savePath = "~/Userfiles/";
if (! savePath.endswith ("/") savePath+= "/";
/*********************************************** ** *************************************
byte [] bytes1 = system.text.encoding.default.getbytes ("Ini adalah string/n/n/n/n");
byte [] bytes2 = byte baru [] {1, 33, 23, 3, 0, 56, 55, 235, 5};
byte [] bytes = byte baru [bytes1.length + bytes2.length];
// gabungkan aliran biner
Memorystream ms = memorystream baru (bytes);
ms.write (bytes1, 0, bytes1.length);
ms.write (bytes2, 0, bytes2.length);
int count = 0, pos = 0;
// Mulai temukan empat '/n'
untuk (int i = 0; i <bytes.length; i ++)
{{
if (bytes [i] == (int) '/n')
{{
Count ++;
if (count == 4)
{{
Pos- = 4;
Merusak;
}
}
}
if (count == 4)
{{
// Di sini, posisi dari 0 ke pos dalam array byte byte adalah string yang Anda inginkan
// dari awal pos + 5 sampai akhir, biner yang Anda inginkan
}
******************************************** **************************************
byte [] Filedata, formdata;
Formdata = request.binaryRead (request.contentLength);
head string = string.empty;
Encode encoding = encoding.utf8;
Pos Long = 0;
untuk (panjang i = 0; i <formdata.longlength; i ++)
{{
if (formdata [i] == (byte) '/r' && formdata [i + 1] == (byte) '/n' && formdata [i + 2] == (byte) '/r' && formdata [i + 3] == (byte) '/n')
{{
pos = i;
Merusak;
}
}
if (pos == 0) {response.end ();
head = encoding.getString (formdata, 0, (int) pos);
FileData = byte baru [formdata.longlength -pos -3];
Array.copy (formdata, pos + 4, filedata, 0, formdata.longlength -pos -4);
/*********************************************** ** ******************************************** ***
// Bentuk formulir datang adalah:
// "----------------------------- 7D5FA3820F84/R/NCONTENT-DISPOSISI: FORMULIR-DATA; NAME =/" NEWFILE/ ".
// nanti adalah data file
******************************************** ********************************************** ***********
head = head.tolower ();
head = head.remove (0, head.indexof ("/r/n");
head = head.replace ("/" "," ");
string postfileName = string.empty;
nama file string; // tidak ada jalur
string filetype, fileext;
Postfilename = head.substring (0, head.indexof ("/r/n"); // konten-disposisi: form-data; name =/"newfile/"; 4 (10995) .jpg/"
filetype = head.remove (0, postfilename.length + 3);
Postfilename = postfileName.substring (postfileName.indexof ("fileName =") + "fileName =". Panjang);
filename = path.getFileName (postfileName);
filext = filename.substring (fileName.LastIndexOf (".") + 1;
ifdata.longlength> maxSize {{{{{{{{
SendResults (2, resolveUrl (savePath + fileName), nama file, "terlalu besar");
Kembali;
}
Bool isallow = false;
Foreach (string ext in denyeDext) {
if (ext == fileext) {
IsAllow = false;
SendResults (202, resolveUrl (savePath + fileName), nama file, "forbiden");
Kembali;
}
}
Foreach (string ext in allowext) {{
if (ext == fileext) {isAllow = true;}
}
if (iSallow)
{{
string tMppath = server.mappath (savePath);
if (! Directory.exists (tMppath)) {{
mencoba
{{
Direktori.createdirectory (tmppath);
}
Catch {sendResults (200, resolveUrl (savePath + fileName), nama file, "tidak ada izin tulis");}
}
//response.binarywrite (Filedata);
FileStream saveFileStream = FileStream baru (TMPPath+FileName, FileMode.OpenorCreate, FileAccess.readwrite);
untuk (panjang i = 0; i <fledata.longlength; i ++)
{{
saveFileStream.writebyte (Filedata [i]);
}
saveFileStream.close ();
SendResults (0, resolveUrl (savePath + filename), filenamame, "no errors");
}
}
}
config.xml
<? Versi XML = "1.0" encoding = "UTF-8"?>
<peindload>
<eevabled> true </delabled>
<userpath> </userpath>
<maxsize> 500000 </pakssize> <!-Unit byte->
<shile>
<lill> zip |
<Disenai php |
</file>
<mage>
<izin> jpg |
<seny> </deny>
</mage>
<Flash>
<Izinkan> SWF |
<seny> </deny>
</tlash>
</EADLOAD>