作者:潘巧军_837 | 来源:互联网 | 2023-05-17 23:55
我现在要实现的功能: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 个解决方案
都没有人回答呀。。。。
是因为分给少了么。。。。
囧,市场经济啊。。。。
我很少发帖,不太懂行情啊。。。。。