亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

使aspx頁面能接受HTML,asp的頁面傳送的文件

2024-05-04 11:06:22
字體:
來源:轉載
供稿:網友
 

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 >
        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 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
       <td width="100%" >
        custom uploader url:<br>
        <input id="txtcustomurl" 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" >
        </form>
       </td>
       <td >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
       <td valign="top" width="100%">
        uploaded file url:<br>
        <input id="txturl" 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("/"", "http:///"") + "/",/"" + filename.replace("/"", "http:///"") + "/",/"" + custommsg.replace("/"", "http:///"") + "/") ;/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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一二三在线视频播| 日韩欧美中文字幕在线播放| 综合网日日天干夜夜久久| 久久久精品久久久久| 亚洲国产天堂网精品网站| 日韩经典中文字幕| 亚洲欧美一区二区三区情侣bbw| 欧美日韩电影在线观看| 亚洲国产精品福利| 日韩精品在线视频| 午夜精品久久久久久久99热| 裸体女人亚洲精品一区| 日韩免费在线视频| 色噜噜久久综合伊人一本| 国产欧美一区二区三区久久| 亚洲精品在线观看www| 精品高清美女精品国产区| 91美女片黄在线观| 麻豆成人在线看| 精品久久久一区二区| 色婷婷亚洲mv天堂mv在影片| 在线亚洲欧美视频| 成人a免费视频| 色在人av网站天堂精品| 欧美成人自拍视频| 一区国产精品视频| 2020欧美日韩在线视频| 欧美在线视频网站| 亚洲天堂av网| 91成人国产在线观看| 色综合视频一区中文字幕| 欧美性一区二区三区| 国产精品18久久久久久麻辣| 亚洲国产精品国自产拍av秋霞| 91极品女神在线| 日本成人免费在线| 国产z一区二区三区| 欧美日韩国产麻豆| 国产精品亚洲网站| 国产91色在线播放| 亚洲精品91美女久久久久久久| 高清日韩电视剧大全免费播放在线观看| 欧美乱妇40p| 一区二区三区高清国产| 国产成人在线精品| 亚洲国产精品热久久| 国产亚洲精品91在线| 久久91精品国产| 久久精品美女视频网站| 欧美乱大交xxxxx另类电影| 深夜成人在线观看| 成人激情视频网| 91欧美日韩一区| 97视频在线播放| 日韩视频在线观看免费| 不卡av电影院| 亚洲美女久久久| 丁香五六月婷婷久久激情| 亚洲欧美日韩中文视频| 一本色道久久综合狠狠躁篇的优点| 久久91精品国产91久久久| 欧美最猛性xxxxx亚洲精品| 亚洲最大福利网站| 亚洲第一免费播放区| 欧美成人午夜影院| 亚洲人在线观看| 亚洲欧美日韩区| 欧美黑人视频一区| 91精品久久久久| 九九热这里只有在线精品视| 国产精品r级在线| 欧美精品精品精品精品免费| 久久夜精品香蕉| 亚洲激情免费观看| 亚洲成人av片| 欧美日韩成人黄色| 国产成人免费av电影| 亚洲天堂第一页| 欧美日韩精品在线视频| 91欧美激情另类亚洲| 北条麻妃99精品青青久久| 日韩日本欧美亚洲| 免费av一区二区| 亚洲午夜未满十八勿入免费观看全集| 欧美另类99xxxxx| 国产91在线播放精品91| 精品久久久一区| 亚洲精品免费网站| 国产一区二区色| 成人激情黄色网| 亚洲毛片在线看| 精品国模在线视频| 国产精品香蕉国产| 欧美激情一二区| 欧美成人精品h版在线观看| 在线精品播放av| 亚洲人a成www在线影院| 在线亚洲午夜片av大片| 久久视频中文字幕| 成人免费福利视频| 一个人看的www欧美| 久久久久久久久网站| 欧美激情久久久久久| 黄网站色欧美视频| 欧美一区二区大胆人体摄影专业网站| 久久99精品久久久久久噜噜| 国产成人精品av在线| 国产在线精品自拍| 亚洲欧洲成视频免费观看| 国产精品观看在线亚洲人成网| 久久九九免费视频| 亚洲性夜色噜噜噜7777| 国产噜噜噜噜久久久久久久久| 亚洲九九九在线观看| 亚洲综合中文字幕68页| 97精品久久久| 久久成人这里只有精品| 久久久久成人精品| 亚洲电影天堂av| 欧美午夜精品久久久久久浪潮| 欧美成人自拍视频| 成人免费午夜电影| 日韩午夜在线视频| 孩xxxx性bbbb欧美| 国产在线999| 久久99青青精品免费观看| 国产精品欧美在线| 日韩一区二区福利| 久久久久久免费精品| 精品国偷自产在线视频| 亚洲天堂开心观看| 国产精品精品久久久久久| 午夜精品一区二区三区视频免费看| 国产精品一区二区三| 国产欧美日韩丝袜精品一区| 日韩中文字幕在线免费观看| 日韩综合视频在线观看| 欧美黑人一级爽快片淫片高清| 亚洲www永久成人夜色| 欧美乱大交做爰xxxⅹ性3| 日韩欧美国产一区二区| 国产亚洲欧美一区| 中文字幕欧美视频在线| 日韩精品视频在线免费观看| 欧美亚洲视频在线看网址| 国产噜噜噜噜久久久久久久久| 亚洲丁香久久久| 97视频人免费观看| 欧美成人三级视频网站| 亚洲黄色www网站| 久久久精品国产一区二区| 国产欧美一区二区三区四区| 国产在线观看一区二区三区| 国产色综合天天综合网| 中文字幕国产亚洲2019| 日韩成人av在线播放| 亚洲男人的天堂在线| 97国产精品视频| 欧美国产亚洲视频| 国产精品久久91| 欧美寡妇偷汉性猛交| 日韩精品在线视频| 亚洲精品久久久久中文字幕欢迎你| 精品国产一区二区三区久久久狼|