ASPX akzeptiert, dass die Datei der ASPX -Seite sehr einfach ist. Verwenden Sie einfach htmlinputFile. Sie ist in Ordnung, aber wenn Sie die HTML -SEATE -POST -Datei akzeptieren
Es ist nicht sehr einfach zu handhaben.
Dateiinhalt, Typ, Größe, benutzerdefinierte Speicherposition in conmfig.xml
Inhalt der HTML -Seite: (vom Fckeditor)
<html>
<kopf>
<titels> fckeditor -UPLoader -Tests </title>
<script Language = "JavaScript">
Funktion sendFile ()
{{{{
var suploaderurl = cmbUploaderurl.value;
If (suploaderurl.length == 0)
suploaderurl = txtCustomall.Value;
If (suploaderurl.length == 0)
{{{{
ALERT ('Bitte geben Sie Ihre benutzerdefinierte URL an oder wählen Sie eine Standardeinstellung aus);
Zurückkehren;
}
EURL.INNERHTML = SUPLADERURL;
txturl.value = '';
frMUpload.Action = suploaderurl;
frmUpload.Submit ();
}
Funktion OnuploadCompleted (Errornumber, FileUrl, Dateiname, CustmsSSG)
{{{{
Schalter (Errornumber)
{{{{
Fall 0: // keine Fehler
txturl.value = fileurl;
Alert ('Datei mit ohne Fehler hochgeladen');
Brechen;
Fall 1: // benutzerdefinierte Fehler
Alert (CustmsSG);
Brechen;
Fall 10: // benutzerdefinierte Warnung
txturl.value = fileurl;
Alert (CustmsSG);
Brechen;
Fall 201:
txturl.value = fileurl;
Alert ('eine Datei mit demselben Namen ist Almedy verfügbar. Die Upload -Datei hat Ben in "' + Dateiname + '"') umbenannt;
Brechen;
Fall 202:
Alert ('ungültige Datei');
Brechen;
Fall 203:
Alert ("Sicherheitsfehler. Sie nicht nicht nicht nicht genug Berechtigungen zum Hochladen. Bitte überprüfen Sie Ihren Server.").
Brechen;
STANDARD:
alert ('Fehler beim Upload der Datei. Eric Nummer:' + errornumber);
Brechen;
}
}
</script>
</head>
<body>
<Table Cellspacing = "0" cellpadding = "0">
<tr>
<td>
<Table Cellspacing = "0" cellpadding = "0">
<tr>
<Td Now4>
Wählen Sie den "Datei -Uploader" aus: <br>
<select id = "cmbUploaderurl" name = "select1">
<Option Select value = "ASP/Upload.asp"> ASP </Option>
<Option Value = "php/upload.php"> php </option>
<Option Value = "Upload.aspx? type = Bild"> ASPX </option>
</select>
</td>
<Td Now44 & nbsp;
<td>
Benutzerdefinierte Uploader -URL: <br>
<input id = "txtCustomall" deaktiviert type = "text">
</td>
</tr>
</table>
<br>
<Table Cellspacing = "0" cellpadding = "0">
<tr>
<Td Now4>
<Form id = "frMUpload" target = "UploadWindow" engType = "MultiPart/Form-Data" action = "" methode = "post">
Laden Sie eine neue Datei hoch: <br>
<Eingabe type = "Datei" name = "newfile"> <br>
<Eingabe type = "button" value = "Senden Sie es an den Server">
</form>
</td>
<td> & nbsp;
<td value = "top">
Hochgeladene Datei -URL: <br>
<input id = "txturl" readonly type = "text">
</td>
</tr>
</table>
<br>
Post url: <span id = "eurl"> & nbsp;
</td>
</tr>
<tr>
<td>
<ifme name = "uploadWindow"> </iframe>
</td>
</tr>
</table>
</body>
</html>
Inhalt von Upload.aspx:
<%@ page Language = "C#" AutoEventwireUp = "True" CodeFile = "Upload.aspx.cs" inherits = "Upload"%>%>
Das Folgende ist der Hintergrundcode:
mit System verwenden;
mit System.data;
mit System.Configuration;
mit System.Collections;
mit System.io;
mit System.text;
mit System.Web;
Mit System.Web.Security;
mit System.web.ui;
Verwenden von System.Web.Ui.Webcontrols;
Verwenden von System.Web.Ui.Webcontrols.WebParts;
mit System.web.ui.htmlControls;
mit System.xml;
Mit System.Collections.Specialized;
Öffentliche Teilklassen -Upload: System.web.ui.page
{{{{
Public void sendResults (int errornumber, String FileUrl, String -Dateiname, String CustomMsg)
{{{{
StringBuilder text = new StringBuilder ();
text.Append ("<script type =/" text/javaScript/">">);
Text.append ("window.parent.onploadCompleted (" + errorrnumber + ",/" + fileurl.replace ("/", "," // ""),/" + fileName.replace ("/"", // " /"") + "/",/" + Custommsg.replace ("/"", "//" ");/n");/n ");/n");/n ");///n");//n ");//n"); n ");/n");/n ");/n");/n ");
text.Append ("</script>");
Antwort.Write (text.tostring ());
Antwort.end ();
}
Public void Get GetFig (String -Typ, out String [] erlaubtext, 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 (Typ);
Erlaubtext = imageInodelist [0].
DenyeDext = ImagEnodelist [0] .LastChild.InNeText.trim ().
savePath = root.getElementsByTagName ("BenutzerPath").
versuchen
{{{{
maxSize = convert.toint64 (root.getElementsByTagName ("maxSize"). Item (0) .InNeText.trim ());));););));) Reeext.trim ());));));)); ;);););););) Reeext.trim ());););););););
}
fangen {maxSize = 10*1024;}
}
Protected void page_load (Objektabsender, EventArgs e)
{{{{
string [] erlaubtext = new String [] {}, DenyEdext = new String [] {};
String SavePath = String.Empty;
lange maxSize = 10000;
String type = Request.queryString ["Typ"];
if (type! = null && type! = string.eMpty)
Type = type.tolower ();
anders
Typ = "Datei";
if (type == "Bild")
{{{{
getConfig ("Bild", out erlaubtext, out DenyeDext, out SavePath, out maxSize);
}
if (type == "Datei")
{{{{
getConfig ("Datei", out erlaubtext, out deenyedext, out SavePath, out maxsize);
}
if (Typ == "Flash"))
{{{{
getConfig ("Flash", out erlaubtext, out -DenyeDext, out SavePath, out maxsize);
}
ifPath == string.empo || SavePath == "")
savePath = "~/userFiles/";
if (! SavePath.endswith ("/") SavePath+= "/";
/************************************************************** ************************************************************************
byte [] bytes1 = system.text.encoding.default.getBytes ("Dies ist eine String/N/n/n/n");
byte [] bytes2 = new Byte [] {1, 33, 23, 3, 0, 56, 55, 235, 5};
byte [] bytes = new byte [bytes1.length + bytes2.Length];
// Binärstrom zusammenführen
MemoryStream MS = New MemoryStream (Bytes);
ms.write (bytes1, 0, bytes1.length);
ms.write (bytes2, 0, bytes2.Length);
int count = 0, pos = 0;
// Finden Sie vier '/n'
für (int i = 0; i <bytes.length; i ++)
{{{{
if (bytes [i] == (int) '/n')
{{{{
Zählen ++;
if (count == 4)
{{{{
Pos = 4;
Brechen;
}
}
}
if (count == 4)
{{{{
// Hier ist die Position von 0 zu POS im Byte -Byte -Array die gewünschte Zeichenfolge
// vom Beginn von POS + 5 bis zum Ende die Binärdatei, die Sie wollen
}
************************************************** ********************************************************
byte [] fieledata, formData;
FormData = Request.BinaryRead (Request.ContentLength);
String head = String.Empty;
codieren coding = coding.utf8;
lange pos = 0;
für (lang 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;
Brechen;
}
}
if (pos == 0) {response.end ();
head = coding.getString (FormData, 0, (int) pos);
Fieledata = new byte [formData.longlength -pos -3];
Array.Copy (FormData, POS + 4, FANGEDATA, 0, FormData.longlength -pos -4);
/************************************************************** **************************************************************************** ***
// Die Form der Form kommt::
// "----------------------------- ".
// später sind die Dateidaten
************************************************** ******************************************************** ***********
head = head.tolower ();
head = head.remove (0, head.indexof ("/r/n");
head = head.replace ("/" "," ");
String postFileName = string.Empty;
String -Dateiname; // kein Weg
String Filetype, FileExte;
PostFileName = head.substring (0, head.indexof ("/r/n"); // Inhaltsdisposition: Formdata; name =/"newfile/"; 4 (10995) .jpg/"
Filetype = head.remove (0, postfilename.length + 3);
PostfileName = postfileName.substring (postfileName.indexof ("Dateiname =") + "Dateiname =". Länge);
fileName = path.getFileName (Postfilename);
filext = Dateiname.substring (Dateiname.lastIndexof (".") + 1;
ifdata.longlength> maxSize {{{{{{{{{{{{{{{{{{{{{
SendResults (2, Resolveurl (SavePath + Dateiname), Dateiname, "zu groß");
Zurückkehren;
}
Bool isallow = false;
Foreach (String ext in DenyeDext) {
if (ext == Fileext) {
Isallow = false;
SendResults (202, Resolveurl (SavePath + Dateiname), Dateiname, "Forbidgen");
Zurückkehren;
}
}
Foreach (string ext in erlaubtext) {{{{{{{{{{{
if (ext == Fileext) {isallow = true;
}
if (isallow)
{{{{
String tmppath = server.mappath (SavePath);
if (! Directory.Exists (tmppath)) {{{{{{{{{{{
versuchen
{{{{
Verzeichnis.Createdirectory (TMPPath);
}
Catch {sendResults (200, Resolveurl (SavePath + Dateiname), Dateiname, "Keine Schreibberechtigungen");};}
}
//Response.BinaryWrite (fieledata);
FileStream SaveFilestream = neuer FileStream (tmppath+fileName, fileMode.openorcreate, fileAccess.readwrite);
für (lang i = 0; i <fledata.longlength; i ++)
{{{{
SaveFilESTREAM.WriteByte (fieledata [i]);
}
SaveFilESTREAM.CLOSE ();
SendResults (0, Resolveurl (SavePath + Dateiname), Filenamame, "No Fehlern");
}
}
}
config.xml
<xml Version = "1.0" coding = "utf-8"?>
<upload>
<Evabled> true </enabled>
<Benerpath> </userPath>
<Axsize> 500000 </maxsize> <!-Einheit ist byte->
<Datei>
<erlauben> Reißverschluss |
<Stile |
</file>
<Abbild>
<Begen Sie> JPG |
<Deny> </Deny>
</image>
<flash>
<erlauben> swf |
<Deny> </Deny>
</flash>
</upload>