c#/.net 如何把word文件储存到服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#/.net 如何把word文件储存到服务器相关的知识,希望对你有一定的参考价值。
我要把本地的word文件上传到服务器,是把word文件转换格式塞到数据库(sqlserver)呢?还是直接存到服务器的硬盘里,然后在数据库里存储路径?小弟没有这方面的经验,望高手们给出详细的思路和代码,小弟拜谢!!!
我不知道如何对服务器进行word存取,我现在想把word直接存到sqlserver数据库,该以什么类型存储呢?是varbinary、XML、image还是其它的什么类型?如果先转换成XML类型,图片和表格怎么处理呢?不解,望达人给个详细的思路。。。
以下所有需要修改的地方用*表示,先修改掉再用
string serverName = "***.***.***.***"; //写你服务器IP,别直接用。。。
// This example assumes the site uses anonymous logon.
NetworkCredential credentials = new NetworkCredential("anonymous", ""); //写你的FTP用户名密码
DemonstrateWebClient(serverName,credentials,filename,ftpdir);//然后调用上传方法,filename是你想要上传的文件名称,ftpdir是上传到服务器的哪个文件夹中
private static void DemonstrateWebClient(string serverName, NetworkCredential credentials, string filename, string ftpdir)
string serverAddress = "ftp://" + serverName + "/" + ftpdir+"/"; //注意这里的格式,很容易在前面定义错
// Create a new WebClient object and set the credentials.
WebClient webClient = new WebClient();
webClient.Credentials = credentials;
//// Download file.
//try
//
// string fileName = ReadFileName("download");
// string downloadAddress = serverAddress + fileName;
// Console.WriteLine("Downloading file " + downloadAddress);
// // The string passed in should include the URI path that has
// // the file name to be downloaded.
// webClient.DownloadFile(downloadAddress, fileName);
//
//catch (WebException ex)
//
// Console.WriteLine(ex.Message);
//
// Upload file.
try
string fileName = filename;
string uploadAddress = serverAddress + fileName;
//Console.WriteLine("Uploading file " + uploadAddress);
webClient.UploadFile(uploadAddress, "/**/"+fileName);//上传文件所在的本地路径在这里修改
catch (WebException ex)
//Console.WriteLine(ex.Message);
MessageBox.Show(ex.Message, "Upload failed");
参考技术A 你可以这样办!
在数据库中有一个字段叫做long raw可以用于存储word文件的内容。
然后,你在定义一个文件的类型比如word型的就是doc,记事本型的就是txt等等。
存储时,将word内容存储到long raw字段中,文件类型存到另一个字段中。
读取时,先读出内容,然后读取文件的类型格式,然后再显示。
-------------------------------这个能行,我们试过!放心吧! 参考技术B web还是form?
存数据库的话用image类型,是以二进制存的,最大可存2G
FileStream myfilestream = new FileStream("文件地址",FileMode.Open,FileAccess.Read);
int len1 = Convert.ToInt32(myfilestream.Length);
byte[] data = new byte[len1];
myfilestream.Read(data, 0, len1);
myfilestream.Close();
this.sqlOpen();
cmd = "INSERT INTO FileTab (FileDoc) VALUES(@img)";
SqlCommand sqlcmd =new SqlCommand(cmd,conn);
SqlParameter pada = new SqlParameter("@img",SqlDbType.Image);
pada.Value=data;
sqlcmd.Parameters.Add(pada);
sqlcmd.ExecuteNonQuery();本回答被提问者采纳 参考技术C 我建议还是直接存在服务器的好多了,这样会减少很多不必要的麻烦。如果你转换格式存着的话,如果Word里面有图片和表格的话, 那问题就特多了,存数据库一般是要将Word转换为html文件存进去的,而html和图片有是分开为两个文件的····问题多多··
当然存服务器的话,我们就存好路径文件名就OK 了·· 参考技术D 可以直接上传
你搜索一下 很简单的
C语言 怎么把文件中的信息储存到结构体数组中
要把这个文件中的数据保存到结构体数组中
我是这么写的
输出为什么是这个
总体写得不错,问题出在你的
fscanf和fprintf函数参数传递错误了
#include "stdio.h"#include "stdlib.h"
struct s
int id;
char name[10];
int co1;
int co2;
int co3;
int co4;
;
int main()
int i=0,count;
struct s st[10];
char fname[10],ch;
FILE *infile,*outfile;
printf("please input data file name:\\n");
scanf("%s",fname);
infile=fopen(fname,"r");
outfile=fopen("output.txt","w");
if(infile==NULL)
printf("\\nFailed to open the file");
exit(1);
fscanf(infile,"%d",&count);
while(i<count)
fscanf(infile,"%d %s %d %d %d %d\\n",&(st[i].id),st[i].name,&(st[i].co1),&(st[i].co2),&(st[i].co3),&(st[i].co4));
fprintf(outfile,"%d %s %d %d %d %d\\n",st[i].id,st[i].name,st[i].co1,st[i].co2,st[i].co3,st[i].co4);
i++;
fclose(infile);
fclose(outfile);
首先,你的name是结构体中的字符数组,fscanf要传入的应该是存储字符的地址,所以直接是数组名name就行
第二,fprintf你要写入文件的数据,应该是真正的数据本身,不是数据的地址,所以应该将变量前的取地址符全去掉就好,
第三,注意加好换行符\\n
结果:
text.txt中内容就是output.txt中的内容
以上是关于c#/.net 如何把word文件储存到服务器的主要内容,如果未能解决你的问题,请参考以下文章