原理:把要上传的文件读入一个字节数组!在服务器端的指定路径,生成一个文件,并把该字节数组写入!
一。file.aspx文件代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileUpLoad.aspx.cs" Inherits="FileUpLoad"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>水情信息发布</title>
        <link rel="stylesheet" type="text/css" href="css/style.css"/>

</head>

<script type="text/javascript">
    SEP_PADDING = 5
    HANDLE_PADDING = 7

var yToolbars = new Array();
    var YInitialized = false;
    var pureText=true
    var bodyTag="<head><style type=\"text/css\">body {font-size: 9pt}</style><meta http-equiv=Content-Type content=\"text/html; charset=gb2312\"></head><BODY bgcolor=\"#FFFFFF\" MONOSPACE>"
 
    public_description=new Editor
    //使IFRAME可以写入值

function document.onreadystatechange(){
       HtmlEdit.document.open();
      HtmlEdit.document.write(bodyTag);
      HtmlEdit.document.close();
      HtmlEdit.document.designMode="On";
    }

function InitBtn(btn)
    {
      btn.onmouseover = BtnMouseOver;
      btn.onmouseout = BtnMouseOut;
      btn.onmousedown = BtnMouseDown;
      btn.onmouseup = BtnMouseUp;
      btn.YINITIALIZED = true;
      return true;
    }

//页脚显示
    function BtnMouseOver()
    {
      if (event.srcElement.tagName != "IMG") return false;
      var image = event.srcElement;
      var element = image.parentElement;

if (image.className == "Ico") element.className = "BtnMouseOverUp";
      else if (image.className == "IcoDown") element.className = "BtnMouseOverDown";

event.cancelBubble = true;
    }

function BtnMouseOut()
    {
      if (event.srcElement.tagName != "IMG") {
        event.cancelBubble = true;
        return false;
      }

var image = event.srcElement;
      var element = image.parentElement;
      yRaisedElement = null;

element.className = "Btn";
      image.className = "Ico";

event.cancelBubble = true;
    }

function BtnMouseDown()
    {
      if (event.srcElement.tagName != "IMG") {
        event.cancelBubble = true;
        event.returnValue=false;
        return false;
      }

var image = event.srcElement;
      var element = image.parentElement;

element.className = "BtnMouseOverDown";
      image.className = "IcoDown";

event.cancelBubble = true;
      event.returnValue=false;
      return false;
    }

function BtnMouseUp()
    {
      if (event.srcElement.tagName != "IMG") {
        event.cancelBubble = true;
        return false;
      }

var image = event.srcElement;
      var element = image.parentElement;

if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");

element.className = "BtnMouseOverUp";
      image.className = "Ico";

event.cancelBubble = true;
      return false;
    }
  //字体颜色
 
    function format(what,opt)
    {
      if (opt=="removeFormat")
      {
        what=opt;
        opt=null;
      }

if (opt==null) HtmlEdit.document.execCommand(what);
      else HtmlEdit.document.execCommand(what,"",opt);

pureText = false;
      HtmlEdit.focus();
    }

function foreColor()
    { 
          var arr = document.all.dlgHelper.ChooseColorDlg();  
          arr   =   arr.toString(16);  
          if (arr!= null) format('forecolor', arr);
          else HtmlEdit.focus();
    }
    //上传
  function  test()
  {
   
    var str=HtmlEdit.document.body.innerHTML;
   
    var str1 = document.getElementById("FileUpLoad").value;
    var str2 =document.getElementById("txtTitle").value;
    var str3 =document.getElementById("txtUser").value;   
    if(str1=="")
    {
      alert("请选择上传文件!");
      document.getElementById("FileUpLoad").focus();
      return;
    }
   
    if(str2=="")
    {
      alert("请输入文件标题!");
      document.getElementById("txtTitle").focus();
      return;
    }
   
    if(str3=="")
    {
      alert("请输入上传人!");
      document.getElementById("txtUser").focus();
      return;
    }
   
    var GetObj=eval("XinXiFaBuPage");
   
     var strFileName=GetObj.GetFileInfo(str1).value; 
     
   if(strFileName=="0")
    {
       alert(strFileName);
       return;
     }    
           
    var strResult=GetObj.Insert(str3,strFileName,HtmlEdit.document.body.innerHTML,str2).value;
    if(strResult=="1")
    {
    alert("文件上传成功!"); 
    }
    else
    {
    alert("数据库写入失败!"); 
    }     
  }
</script>

<body>
 
    <form id="form1"  enctype="multipart/form-data" runat="server">
    <div align="center">
      <table class="STB" border ="1" width ="470px">
           <tr >
             <td colspan="2" height ="100px" class="SC_B SF_T" align="center">水情信息发布
             </td>
           </tr>
          
           <tr>
             <td class="SF_BL" width ="147px" height ="35px" align ="right">
                       文件名</td>
             <td align ="left">
               <input type ="file" id="FileUpLoad" runat="server" style="width: 295px" />
             </td>    
           </tr>
          
           <tr>
             <td class="SF_BL" width ="147px" height ="35px" align ="right">
                   标题</td>
             <td class="SF_BR" width ="300px" align ="left" style="height: 35px">
                   <asp:TextBox   ID="txtTitle" runat="server" Width="288px"></asp:TextBox>
             </td>
           </tr>
          
           <tr>
            <td class="SF_BL" width ="147px" height ="35px" align ="right">
                   说明文</td>
                   
             <td class="SF_BR" width ="300px" height ="165px" align ="left">
                  <img  src="data:image/fgcolor.gif" align="absmiddle" width="16" height="16"  οnclick="foreColor()" title="字体颜色" >&nbsp;
                  <img src="data:image/bold.gif" align="absmiddle" alt="粗体" οnclick="format('bold', '')" style="cursor: hand;">
                  <img src="data:image/italic.gif" align="absmiddle" alt="斜体" οnclick="format('italic', '')" style="cursor: hand;">
                  <img src="data:image/underline.gif" align="absmiddle" alt="下划线" οnclick="format('underline', '')" style="cursor: hand;">
                   <select language="javascript"  id="select1" onChange="format('fontname',this[this.selectedIndex].value);" name="select" onMouseOver="window.status='选择选定文字的字体。';return true;" onMouseOut="window.status='';return true;" style="width: 62px">                 
                  <!-- <select name="selectFont" onChange="format('fontname', selectFont.options[selectFont.selectedIndex].value);selectFont.options[0].selected = true;"  style="font-family: 宋体; font-size: 9pt" onMouseOver="window.status='选择选定文字的字体。';return true;" onMouseOut="window.status='';return true;">-->
                    <option value="宋体">宋体</option>
                    <option value="楷体_GB2312">楷体</option>
                    <option value="新宋体">新宋体</option>
                    <option value="黑体">黑体</option>
                    <option value="隶书">隶书</option>
                    <option value="幼圆">幼圆</option>
                    <OPTION value="Andale Mono">Andale Mono</OPTION>
                    <OPTION value=Arial>Arial</OPTION>
                    <OPTION value="Arial Black">Arial Black</OPTION>
                    <OPTION value="Book Antiqua">Book Antiqua</OPTION>
                    <OPTION value="Century Gothic">Century Gothic</OPTION>
                    <OPTION value="Comic Sans MS">Comic Sans MS</OPTION>
                    <OPTION value="Courier New">Courier New</OPTION>
                    <OPTION value=Georgia>Georgia</OPTION>
                    <OPTION value=Impact>Impact</OPTION>
                    <OPTION value=Tahoma>Tahoma</OPTION>
                    <OPTION value="Times New Roman" >Times New Roman</OPTION>
                    <OPTION value="Trebuchet MS">Trebuchet MS</OPTION>
                    <OPTION value="Script MT Bold">Script MT Bold</OPTION>
                    <OPTION value=Stencil>Stencil</OPTION>
                    <OPTION value=Verdana>Verdana</OPTION>
                    <OPTION value="Lucida Console">Lucida Console</OPTION>
                  </select>
                  <select language="javascript"  id="select2" title="字号大小" onChange="format('fontsize',this[this.selectedIndex].value);" name="select" onMouseOver="window.status='选择选定文字的字号大小。';return true;" onMouseOut="window.status='';return true;">
                    <option value="7">一号
                    <option value="6">二号
                    <option value="5">三号
                    <option value="4">四号
                    <option value="3">五号
                    <option value="2">六号
                    <option value="1">七号</option>
                  </select>
                   <iframe class="HtmlEdit" id="HtmlEdit" MARGINHEIGHT="1" MARGINWIDTH="1" width="280" height="135" scrolling="auto" style="width: 292px" >
                  </iframe>

</td>
           </tr>
          
            <tr>
             <td class="SF_BL" width ="147px" height ="35px" align ="right">
                   上传人</td>
             <td class="SF_BR" width ="300px" align ="left" style="height: 35px">
                   <asp:TextBox   ID="txtUser" runat="server" Width="284px"></asp:TextBox>
             </td>
           </tr>
            <tr>
                <td colspan="2" class="SC_B" height ="50px" align="center">
                <input type ="button" value ="提交" onclick ="test()" />
               </td>
            </tr>
     </table>
      <OBJECT   id="dlgHelper"   CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"   width="0px"   height="0px"></OBJECT>
  </div>
  </form>
</body>
</html>
二。后台文件,FileUpLoad.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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 AjaxPro;
using System.IO;
using System.Text;
using System.Data.SqlClient;
using BaseCommon.DbCommon;
using BaseCommon.Exp;
using BaseCommon.ValueObject;

public partial class FileUpLoad : BaseCommon.BasePage.BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        AjaxPro.Utility.RegisterTypeForAjax(typeof(XinXiFaBuPage));
    }

/// <summary>
    /// 文件上传
    /// </summary>
    /// <param name="strFile">客户端文件路径</param>
    /// <returns></returns>
    [AjaxPro.AjaxMethod()]
    public string GetFileInfo(string strFile)
    {

FileStream fs = new FileStream(strFile, FileMode.Open, FileAccess.Read);
        BinaryReader binReader = new BinaryReader(fs);
        byte[] buffer = binReader.ReadBytes((int)fs.Length);
        binReader.Close();

//文件扩展名

string strExtension = System.IO.Path.GetExtension(strFile);

//文件名

string strWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(strFile);
        string strFileTemp = strWithoutExtension + strExtension;

WebService web = new WebService();

web.bytes = buffer;
        try
        {
            web.CreatFile(Server.MapPath("../") + "Config.config", strFileTemp);

return strFileTemp;
        }
        catch (Exception ex)
        {
            return Server.MapPath("../") + "Config.config";
        }

return   strFileTemp;  
}

#region 向数据库里添加数据

/// <summary>
    /// 向数据库里添加数据

/// </summary>
    /// <param name="strUser">上传人</param>
    /// <param name="strFile">文件名</param>
    /// <param name="strInfo">文件说明</param>
    /// <param name="strTitle">文件标题</param>
    [AjaxPro.AjaxMethod()]
    public string Insert(string strUser, string strFile, string strInfo, string strTitle)
    {
        try
        {
            //方法开始log出力
            fxLog.StartMethodLog("XinXiFaBuPage.aspx.cs", "Insert");

string dtNow = DateTime.Now.ToString();

//打开连接   
            DataBase db = new DataBase();

db.OpenConn();

SqlConnection scon = db.GetConn();

//设置命令SQL语句  
            string strSQL = "INSERT   INTO   SL_FILEINFO  (USRNAME,TM,FILENAME,TITLE,CONTENT)   Values('" + strUser + "','" + dtNow + "', '" + strFile + "', '" + strTitle + "','" + strInfo + "')";
            SqlCommand Cmd = new SqlCommand(strSQL, scon);

//执行 
            Cmd.ExecuteNonQuery();

//关闭数据库

scon.Close();

//方法结束log出力
            fxLog.EndMethodLog("XinXiFaBuPage.aspx.cs", "Insert");

return "1";
        }
        catch (Exception ex)
        {
            //错误 LOG 处理
            logVo.LogLevel = SysLog.LogLevel.ERROR;
            logVo.ex = ex;
            logVo.LogMsg = "";
            fxLog.LogWrite(logVo);
            throw new UIException(ex);
            return "0";
        }
    }

#endregion

}

转载于:https://www.cnblogs.com/yansheng9988/archive/2008/01/28/1056309.html

文件上传------c#相关推荐

  1. springboot设置文件上传大小(tomcat默认1M)

    application.yml # 设置文件上传大小(tomcat默认1M) server:tomcat:max-http-form-post-size: -1 spring:servlet:mult ...

  2. 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录

    将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...

  3. Springboot 多文件上传

    其实多个文件和单个文件上传是一样的,可以使用同一个Controller 添加依赖 <!-- https://mvnrepository.com/artifact/commons-fileuplo ...

  4. django文件上传

    Django在处理文件上传时,文件数据被打包封装在request.FILES中. 一.简单上传 首先,写一个form模型,它必须包含一个FileField: # forms.py from djang ...

  5. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  6. 模拟文件上传(一):手动文件上传

    关于上传文件,首先我的第一个案例是一个文本文件的上传,简单容易上手! 首先我们上传文件肯定就属于实体内容部分了:所以不能过GET方式请求了,要通过POST方式请求: 因为: 1.get方式是URL传值 ...

  7. Java中的文件上传2(Commons FileUpload:commons-fileupload.jar)

    相比上一篇使用Servlet原始去实现的文件上传(http://www.cnblogs.com/EasonJim/p/6554669.html),使用组件去实现相对来说功能更多,省去了很多需要配置和处 ...

  8. 转 [JAVA] 使用 common-fileupload 实现文件上传

    就在前段时间,还在苦于找到不到合适的上传组件,虽然很早就知道了 common-fileupload,但当时却因为没有找到如何获取表单参数的方法而使用 jspSmartUpload,历尽艰辛终于找到了它 ...

  9. 三层架构中ajax,基于mvc三层架构和ajax技术实现最简单的文件上传

    前台页面提交文件 文件操作 上传文件 //上传文件 function upFile() { var file = document.getElementById("UpFile") ...

  10. 上传图片被防火墙拦截_Web安全:文件上传漏洞

    文章来源:计算机与网络安全 一般将文件上传归类为直接文件上传与间接文件上传.直接文件上传就是服务器根本没有做任何安全过滤,导致攻击者可以直接上传小马文件及大马文件(如ASP.ASPX.PHP.JSP及 ...

最新文章

  1. Python基础编程——多重继承下方法的调用
  2. 皮一皮:谈恋爱一定要谨慎...
  3. 如何优雅的使用RabbitMQ
  4. 使用Xcode 7 beta免费真机调试iOS应用程序
  5. 【Python CheckiO 题解】First Word
  6. 方便微信公众号等手机网页调试插件eruda和vConsole
  7. Android坑点-ByteBuffer.array() 入过坑吗
  8. 华为云举办AI经典论文复现活动,打造领先AI开发者学习社区
  9. 小程序入门学习03--navigator组件
  10. ai人工智能的本质和未来_什么是人工智能,它将如何塑造我们的未来?
  11. 安装AX2012R3流程
  12. [ 渗透工具篇 ] sqlmap 详解(一) sqlmap 安装详解
  13. 主成分分析(PCA)及其可视化——python
  14. Unbuntu的安装
  15. P2704 [NOI2001] 炮兵阵地
  16. 大连理工大学开发区校区新手指南——2.校园介绍篇
  17. ××× 笔记(持续更新中。。)
  18. 地大校园邮箱申请流程中国地质大学(武汉)
  19. CF1444C Team-Building 可撤销种类并查集
  20. MMM互助社区是不是真的,有没有风险

热门文章

  1. 2021年四川省卫生副高考试成绩查询时间,2021年四川卫生资格成绩查询时间及查分入口【6月4日起】...
  2. html5编写商城页面,HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第2章HTML基础知识...
  3. php ddl,MySQL定义语言[DDL]
  4. nginx 定时分割日志
  5. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_20-页面查询服务端开发-创建CMS服务工程-测试Controller...
  6. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_12-MongoDb入门-基础概念...
  7. 阶段3 1.Mybatis_11.Mybatis的缓存_6 Mybatis中的一级缓存
  8. python Image 模块处理图片
  9. python read文件的r和rb的区别
  10. WebSocket websockets