zoukankan      html  css  js  c++  java
  • .net 读取客户端文件的方法

          以前是写C/S的,基本上都不用考虑程序权限的问题。现在写b/s,想程序和客户端有个交互的东东,一下子就愁坏了总是报错,没有权限!想直接操作根本就不行!最后只能放弃了。

          例如操作客户端的EXCEL文件,JAVA里有个很好的东西workbook,用来存储客户端上载的EXCEL文件(内存),不用写到硬盘上,但是有个问题就是占内存(临时性的,大文件比较明显),操作还是在服务器操作的(客户端就是没有权限)。.net的方法是先存储下来(写到硬盘上),然后再写到内存中来。

    各有利弊,但是JAVA多提供了一条路!

      如果客户端程序读取的是文本文件,方法就都有了。因为上载上来的东西你可以直接从内存中读出来,也可以先存储到硬盘上,然后再读出来!

      浏览器代码:

     1 <head runat="server">
     2     <title></title>
     3 </head>
     4 <body>
     5     <form id="form1" runat="server">
     6     <div>
     7     
     8         <asp:FileUpload ID="GetUploadFileContent" runat="server" Width="190px" />
     9     <br />
    10         <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    11         <br />
    12         <asp:TextBox ID="TextBox1" runat="server"  TextMode="MultiLine" Height="134px"></asp:TextBox>
    13     </div>
    14     </form>
    15 </body>
    16 </html>

    后台代码:

    文本文件的读取提供了直接从内存读取的方法,EXCEL采用了存储到服务器再读取的方法!

    using System;
    using System.Collections.Generic;
    //using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.OleDb;
    using System.IO;
    
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string fileName = this.GetUploadFileContent.FileName;  //文件名
            string filePath = this.GetUploadFileContent.PostedFile.FileName; //完整路径+文件名称
            string fileType = System.IO.Path.GetExtension(fileName);
    
    
            if (fileType == ".txt")
            {
                int fileLength = this.GetUploadFileContent.PostedFile.ContentLength;
                byte[] input = new byte[fileLength];
    
                System.IO.Stream fileStream = this.GetUploadFileContent.PostedFile.InputStream;
                fileStream.Read(input, 0, fileLength);
                fileStream.Position = 0;
                System.IO.StreamReader sr = new System.IO.StreamReader(fileStream, System.Text.Encoding.Default);
                this.TextBox1.Text = sr.ReadToEnd();
                fileStream.Close();
                sr.Close();
    
            }
            if (fileType == ".xls")
            {
                string savePath = Server.MapPath("~\\upfile\\") + fileName;
                if (File.Exists(savePath))
                {
                    File.Delete(savePath);
                    this.GetUploadFileContent.SaveAs(savePath);
                }
                else
                {
                    this.GetUploadFileContent.SaveAs(savePath);
                }
    
                if (File.Exists(savePath))
                {
                    DataSet ds = new DataSet();
                    string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                     + savePath + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1\"";
                    OleDbConnection conn = new OleDbConnection(str);
    
                    string strSql = "select * from [Sheet1$]";
                    OleDbDataAdapter adp = new OleDbDataAdapter(strSql, conn);
                    conn.Open();
                    adp.Fill(ds);
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            this.TextBox1.Text += ds.Tables[0].Rows[i][0].ToString() + "\r\n";
                        }
                    }
                    conn.Close();
                    File.Delete(savePath);
                }
            }
        }
    }
    

     慢慢理解就会明白很多了!多学习吧!

  • 相关阅读:
    hadoop作业
    爬虫综合大作业
    爬取全部校园新闻
    理解爬虫原理
    中文词频统计与词云生成
    复合数据类型,英文词频统计
    字符串操作、文件操作,英文词频统计预处理
    了解大数据的特点、来源与数据呈现方式
    Hadoop综合大作业
    分布式文件系统HDFS
  • 原文地址:https://www.cnblogs.com/allan5204/p/2497141.html
Copyright © 2011-2022 走看看