aspx接受aspx页面的文件很简单,用HtmlInputFile,就可以了,但是如果接受Html页面post的文件
就不怎么好办了,我仿照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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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" οnclick="SendFile();">
        </form>
       </td>
       <td style="WIDTH: 16px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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">&nbsp;</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+="/";
  /*********************************************************************************
  byte[] bytes1 = System.Text.Encoding.Default.GetBytes("这是字符串/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];

//合并二进制流
  MemoryStream ms = new MemoryStream(bytes);
  ms.Write(bytes1, 0, bytes1.Length);
  ms.Write(bytes2, 0, bytes2.Length);

int count = 0, pos = 0;
  //开始找四个'/n'
  for (int i = 0; i < bytes.Length; i++)
  {
   if (bytes[i] == (int)'/n')
   {
    count++;
    if (count == 4)
    {
     pos -= 4;
     break;
    }
   }
  }

if (count == 4)
  {
   //这里,bytes字节数组里从0 到 pos 的位置就是你要的字符串
   //从pos + 5 开始到最后,就是你要的二进制
  }
  **********************************************************************************/
  byte[] fileData, formData;

formData = Request.BinaryRead(Request.ContentLength);
  string head = String.Empty;
  Encoding encoding = Encoding.UTF8;

long pos = 0;
  for (long 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;
    break;
   }
  }
  if (pos == 0) { Response.End(); return; }
  head = encoding.GetString(formData, 0, (int)pos);
  fileData = new byte[formData.LongLength - pos - 3];
  Array.Copy(formData, pos + 4, fileData, 0, formData.LongLength - pos - 4);
  /************************************************************************************************
  //传来的表单形式是:
  //"-----------------------------7d5fa3820f84/r/nContent-Disposition: form-data; name=/"NewFile/"; filename=/"F://Documents//4(10995).jpg/"/r/nContent-Type: image/pjpeg/r/n/r/n
  //后面是文件数据
   ************************************************************************************************/
  head = head.ToLower();
  head = head.Remove(0, head.IndexOf("/r/n") + 2);
  head = head.Replace("/"", "");
  string postFileName = string.Empty;
  string fileName;//no path
  string fileType, fileExt;
  postFileName = head.Substring(0, head.IndexOf("/r/n"));//Content-Disposition: form-data; name=/"NewFile/"; filename=/"F://Documents//4(10995).jpg/"
  fileType = head.Remove(0, postFileName.Length + 3);//returns:Content-Type: image/pjpeg
  postFileName = postFileName.Substring(postFileName.IndexOf("filename=") + "filename=".Length);//C:/path/name
  fileName = Path.GetFileName(postFileName);
  fileExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
  if (fileData.LongLength > maxSize) {
   SendResults(2, ResolveUrl(savePath + fileName), fileName, "Too large");
   return;
  }
  bool isallow=false;
  foreach(string ext in denyedExt){
   if (ext == fileExt) {
    isallow = false;
    SendResults(202, ResolveUrl(savePath + fileName), fileName, "forrbiden");
    return;
   }
  }

foreach (string ext in allowedExt) {
   if (ext == fileExt) { isallow = true; break; }
  }
  if ( isallow)
  {
   string tmpPath = Server.MapPath(savePath);
   if (!Directory.Exists(tmpPath)) {
    try
    {
     Directory.CreateDirectory(tmpPath);
    }
    catch { SendResults(200, ResolveUrl(savePath + fileName), fileName, "没有写入权限"); }
   }
   //Response.BinaryWrite(fileData);
   FileStream savefileStream= new FileStream(tmpPath+fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
   for (long i = 0; i < fileData.LongLength; i++)
   {
    savefileStream.WriteByte(fileData[i]);
   }
   savefileStream.Close();
   SendResults(0, ResolveUrl(savePath + fileName), fileName, "No errors");

}

}
}

config.xml
<?xml version="1.0" encoding="utf-8"?>
<upload>
    <enabled>true</enabled>
    <userPath></userPath>
 <maxSize>500000</maxSize><!--unit is byte-->
    <file>
        <allow>zip|rar</allow>
        <deny>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</deny>
    </file>
    <image>
        <allow>jpg|gif|jpeg|png|bmp</allow>
        <deny></deny>
    </image>
    <flash>
        <allow>swf|fla</allow>
        <deny></deny>
    </flash>
</upload>

ASP.NET使aspx页面能接受HTML,asp的页面传送的文件相关推荐

  1. 用aspx开发html5页面,ASP.NET使aspx页面能接受HTML,asp的页面传送的文件-.NET教程,Asp.Net开发...

    aspx接受aspx页面的文件很简单,用htmlinputfile,就可以了,但是如果接受html页面post的文件 就不怎么好办了,我仿照asp的方法做法如下,自己测试通过,拿出来给大家共享,可以限 ...

  2. html页面如何接受提示参数,html页面如何象asp一样接受参数_javascript教程

    var pos,str,para,parastr,tempstr1; tempstr=""; str = window.location.href; pos = str.index ...

  3. [转] HOWTO:使ASP.NET网站Forms验证可以指定多个登录页面

    原文转自:http://www.cnblogs.com/yicone/archive/2008/05/22/1204431.html 网站结构如下:     /default.aspx     /lo ...

  4. 各种页面刷新代码大全,asp/javascript刷新页面代码

    页面自动刷新代码大全,基本上所有要求自动刷新页面的代码都有,大家可以自由发挥做出完美的页面. 1) 10表示间隔10秒刷新一次 2) <script> window.location.re ...

  5. ASP.NET获取.aspx.cs的类名获取当前url的domain

    ASP.NET获取.aspx.cs的类名: this.GetType().  得到的:   ASP.****_ASPX   那我该如何才能得到   类名:****.通过字符串处理得到的类名总感觉不是正 ...

  6. ASP.NET -- WebForm -- .aspx与.aspx.cs文件

    ASP.NET -- WebForm -- .aspx与.aspx.cs文件 ASP.NET -- WebForm --  .aspx与.aspx.cs文件 1. ASP.NET -- WebForm ...

  7. ASP.NET -- WebForm -- .aspx与.aspx.cs文件

    ASP.NET -- WebForm --  .aspx与.aspx.cs文件 1. ASP.NET -- WebForm(C#)文件 .aspx文件:是Html页面,页面的布局,样式在该文件中设计. ...

  8. ASP.NET中.aspx文件和.aspx.cs文件的功能区别和特点

    .aspx与aspx.cs区别特点和功能 1) 首先了解一下整个asp.net网站的结构特点 整个网站 aspx/cshtml:前台页面,区别是编译引擎不一样,后者在ASP.net MVC3中引入 . ...

  9. 运行php能运行asp么,配置使web server即能运行asp又能运行PHP(不装Apache)

    配置使web server即能运行asp又能运行PHP(不装Apache) 时间:2006/7/19 13:36:01 作者:佚名 人气:57 支持ASP不用多余的设置,只要按正确安装了IIS4或II ...

最新文章

  1. 网站优化新方式亟需创新
  2. bootstrap-datetimepicker bootstrap-datepicker bootstrap-timepicker 时间插件
  3. TortoiseSVN 菜单详解
  4. 【若依(ruoyi)】表格图片预览功能图片超宽、超高问题
  5. Kafka科普系列 | 什么是LW和logStartOffset?
  6. EntityFramework Core 3多次Include导致查询性能低之解决方案
  7. Shell中计算模块 bc的使用
  8. chrome中文本框样式问题
  9. 利润表模板excel_年薪60w财务总监:工作八年,这10个Excel必备财务系统,效率翻倍...
  10. 【苹果鼠标滑轮失灵】解决办法
  11. skyWalking相关
  12. 探索使用JAVA将汉字解析成拼音
  13. [实践篇]13.8 如何解析gcore?
  14. NFC模块方案,轻松实现NFC通讯
  15. 芬兰ZYFRA公司在首届中俄创新大赛中获胜
  16. 一款专注于销售人员拜访管理的APP
  17. hibernate.cfg.xml配置时出现的问题
  18. Cisco无线AP无法注册至控制器故障
  19. Android写出资源到根目录,创建一个文件夹并将其写入android的根目录
  20. 台式机和工作站到底有什么区别?

热门文章

  1. 设计模式七大原则——开闭原则
  2. PHP中JSON格式接收请求方法以及对象值操作方法
  3. 南林蓝桥杯计算机大赛,我院计算机系在2019年第十届蓝桥杯大赛(省赛)中获得5项一等奖...
  4. 普罗米修斯监控docker 服务
  5. 智能软开关 配电网重构matlab 二阶锥 以33节点为研究对象,编制配电网故障重构模型
  6. linux 引导内存,initramfs
  7. IIR 数字滤波器全极点格型的MATLAB实现
  8. 电脑显示WiFi已连接,但无法访问internet怎么解决?
  9. 字符串下划线驼峰映射实体类参数json对象
  10. c++二维向量初始化