使aspx页面能接受HTML,asp的页面传送的文件
就不怎么好办了,我仿照asp的方法做法如下,自己测试通过,拿出来给大家共享,可以限制
文件内容,类型,大小,自定义存储位置,在congfig.xml内
html页的内容:(来自FCKeditor)
<html>
<head>
<title>FCKeditor - Uploaders Tests</title>
<script language=\"javascript\">
function SendFile()
{
var sUploaderUrl = cmbUploaderUrl.value ;
if ( sUploaderUrl.length == 0 )
sUploaderUrl = txtCustomUrl.value ;
if ( sUploaderUrl.length == 0 )
{
alert( \'Please provide your custom URL or select a default one\' ) ;
return ;
}
eURL.innerHTML = sUploaderUrl ;
txtUrl.value = \'\' ;
frmUpload.action = sUploaderUrl ;
frmUpload.submit() ;
}
function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
{
switch ( errorNumber )
{
case 0 : // No errors
txtUrl.value = fileUrl ;
alert( \'File uploaded with no errors\' ) ;
break ;
case 1 : // Custom error
alert( customMsg ) ;
break ;
case 10 : // Custom warning
txtUrl.value = fileUrl ;
alert( customMsg ) ;
break ;
case 201 :
txtUrl.value = fileUrl ;
alert( \'A file with the same name is already available. The uploaded file has been renamed to \"\' + fileName + \'\"\' ) ;
break ;
case 202 :
alert( \'Invalid file\' ) ;
break ;
case 203 :
alert( \"Security error. You probably don\'t have enough permissions to upload. Please check your server.\" ) ;
break ;
default :
alert( \'Error on file upload. Error number: \' + errorNumber ) ;
break ;
}
}
</script>
</head>
<body>
<table cellSpacing=\"0\" cellPadding=\"0\" width=\"100%\" border=\"0\" height=\"100%\">
<tr>
<td>
<table cellSpacing=\"0\" cellPadding=\"0\" width=\"100%\" border=\"0\">
<tr>
<td nowrap style=\"height: 43px\">
Select the \"File Uploader\" to use:<br>
<select id=\"cmbUploaderUrl\" name=\"Select1\">
<option selected value=\"asp/upload.asp\">ASP</option>
<option value=\"php/upload.php\">PHP</option>
<option value=\"Upload.aspx?type=image\">aspx</option>
</select>
</td>
<td nowrap style=\"height: 43px\"> </td>
<td width=\"100%\" style=\"height: 43px\">
Custom Uploader URL:<BR>
<input id=\"txtCustomUrl\" style=\"WIDTH: 100%; BACKGROUND-COLOR: #dcdcdc\" disabled type=\"text\">
</td>
</tr>
</table>
<br>
<table cellSpacing=\"0\" cellPadding=\"0\" width=\"100%\" border=\"0\">
<tr>
<td noWrap>
<form id=\"frmUpload\" target=\"UploadWindow\" enctype=\"multipart/form-data\" action=\"\" method=\"post\">
Upload a new file:<br>
<input type=\"file\" name=\"NewFile\"><br>
<input type=\"button\" value=\"Send it to the Server\" onclick=\"SendFile();\">
</form>
</td>
<td style=\"WIDTH: 16px\"> </td>
<td vAlign=\"top\" width=\"100%\">
Uploaded File URL:<br>
<INPUT id=\"txtUrl\" style=\"WIDTH: 100%\" readonly type=\"text\">
</td>
</tr>
</table>
<br>
Post URL: <span id=\"eURL\"> </span>
</td>
</tr>
<tr>
<td height=\"100%\">
<iframe name=\"UploadWindow\" width=\"100%\" height=\"100%\"></iframe>
</td>
</tr>
</table>
</body>
</html>
upload.aspx的内容:
<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"Upload.aspx.cs\" Inherits=\"Upload\"%>
下面是后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Collections.Specialized;
public partial class Upload : 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(\" + errorNumber + \",/\"\" + fileUrl.Replace(\"/\"\", \"///\"\") + \"/\",/\"\" + fileName.Replace(\"/\"\", \"///\"\") + \"/\",/\"\" + customMsg.Replace(\"/\"\", \"///\"\") + \"/\") ;/n\");
text.Append(\" </script>\");
Response.Write(text.ToString());
Response.End();
}
public void GetConfig(string type, out string[] allowedExt, out string[] denyedExt,out string savePath,out long maxSize)
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath(@\"./Config.xml\"));
XmlElement root=doc.DocumentElement;
XmlNodeList imageNodelist=root.GetElementsByTagName(type);
allowedExt = imageNodelist[0].FirstChild.InnerText.Trim().Split(\'|\');
denyedExt = imageNodelist[0].LastChild.InnerText.Trim().Split(\'|\');
savePath = root.GetElementsByTagName(\"userPath\").Item(0).InnerText.Trim();
try
{
maxSize = Convert.ToInt64(root.GetElementsByTagName(\"maxSize\").Item(0).InnerText.Trim());
}
catch { maxSize = 10*1024; }
}
protected void Page_Load(object sender, EventArgs e)
{
string[] allowedExt = new string[] { }, denyedExt = new string[] { };
string savePath = String.Empty;
long maxSize = 10000;
string type = Request.QueryString[\"Type\"];
if(type!=null&&type!=string.Empty)
type=type.ToLower();
else
type=\"file\";
if (type == \"image\")
{
GetConfig(\"image\", out allowedExt, out denyedExt, out savePath,out maxSize);
}
if (type == \"file\")
{
GetConfig(\"file\", out allowedExt, out denyedExt, out savePath, out maxSize);
}
if (type == \"flash\")
{
GetConfig(\"flash\", out allowedExt, out denyedExt, out savePath, out maxSize);
}
if (savePath == string.Empty||savePath==\"\")
savePath = \"~/UserFiles/\";
if(!savePath.EndsWith(\"/\"))savePath+=\"/\";
- 上一篇: .NET和SQL Server中“空值”辨析
- 下一篇: C#中的数组和C++中数组的区别