热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Web开发中,关于文件字节流的处理与XML文件的生成

我现在要实现的功能:1,用户点击网页上的“上传”按钮上传一个txt文件2,服务器把这个内容格式固定的txt文件读取成字节流3,调用一个WebService,这个WebService的功能是
我现在要实现的功能:
1,用户点击网页上的“上传”按钮上传一个txt文件
2,服务器把这个内容格式固定的txt文件读取成字节流
3,调用一个WebService,这个WebService的功能是根据这个字节流生成txt文件,然后处理txt文件并从中获取我所需要的数据,最后生成一个XML文件来把这些有用的数据写入。
4,服务器处理这个XML文件,把里面的数据对应存储到数据库。


我对XML不是很熟悉,现在已经将txt文本文件成功转化为字节流了,实现代码如下:

 //上传按钮触发事件,读取txt文件
    protected void ButtonUpload_Click(object sender, EventArgs e)
    {
        //获取完整长文件名(短文件名+扩展名)
        string fileName = this.FileUpload1.PostedFile.FileName.ToString();

        //上传文件的大小(byte)
        int fileLength = this.FileUpload1.PostedFile.ContentLength;

        //获取文件的短文件名
        string frontFileName = Path.GetFileNameWithoutExtension(this.FileUpload1.PostedFile.FileName);

        //获取文件的扩展名
        string fileExt = fileName.Substring(fileName.LastIndexOf("."));

        //重新设置一个新的完整长文件名,格式为:短文件名+上传时间+扩展名
        fileName = "\\" + frontFileName + DateTime.Now.ToString("yyyyMMddhhmmss") + fileExt;


        //使用新文件名将文件保存到服务器的项目文件夹upload中
        try 
        {
            //文件保存
            FileUpload1.PostedFile.SaveAs(HttpRuntime.AppDomainAppPath + @"\upload\" + fileName);
            string fileurl = HttpRuntime.AppDomainAppPath + @"\upload\" + fileName;
            Response.Write("文件上传成功");

            //读取文件,获得字节流
            FileStream fs = new FileStream(fileurl, FileMode.Open);
            long i = fs.Length;
            byte[] b = new byte[i]; //b为所得字节流
            fs.Read(b, 0, Convert.ToInt32(b.Length));
            UTF8Encoding temp = new UTF8Encoding(true);
            string data = temp.GetString(b);
            fs.Close();

        }
        catch (Exception exc) 
        {
            Response.Write("文件上传错误,原因:"+exc.ToString()); 
        }


不知道上面读取txt获取字节流的方法有没有什么问题?

然后在接下来的工作(设计WebService,根据字节流b生成txt文件,读取txt文件中某些部分的数据,写入XML……)开始之前,想先来请教下如何实现这些难点?

谢谢了。



另外,我使用的是FileUpload控件来上传这个txt文件,但是我现在想隐藏它,然后再用一个TextBox1和一个Button1来模拟它(也就是我点击Button1控件,打开选择文件的浏览窗口,然后选择文件后,文件路径显示到TextBox1中去,但其实真正参与文件上传还是隐藏的FileUpload控件),请问具体如何实现?我在网上找了很多方法,大多讲得很模糊,摸索了很久没有成功实现。

4 个解决方案

#1


楼上隐藏上传控件的目的是什么?

#2


因为我现在做的是英文网站,所以FileUpload控件的“浏览...”按钮我希望改成“Browse...”按钮,虽然在英文版操作系统中它会自动变成英文,但是我希望无论在英文还是中文版OS中都会显示的是英文。

引用 1 楼 huwei2003 的回复:
楼上隐藏上传控件的目的是什么?

#3


都没有人回答呀。。。。

是因为分给少了么。。。。

囧,市场经济啊。。。。

我很少发帖,不太懂行情啊。。。。。



推荐阅读
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 本文介绍了在实现了System.Collections.Generic.IDictionary接口的泛型字典类中如何使用foreach循环来枚举字典中的键值对。同时还讨论了非泛型字典类和泛型字典类在foreach循环中使用的不同类型,以及使用KeyValuePair类型在foreach循环中枚举泛型字典类的优势。阅读本文可以帮助您更好地理解泛型字典类的使用和性能优化。 ... [详细]
  • Java编程思想一书中第21章并发中关于线程间协作的一节中有个关于汽车打蜡与抛光的小例子(原书的704页)。这个例子主要展示的是两个线程如何通过wait ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
author-avatar
潘巧军_837
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有