
c#/.net 如何把word文件储存到服务器
我要把本地的word文件上传到服务器,是把word文件转换格式塞到数据库(sqlserver)呢?还是直接存到服务器的硬盘里,然后在数据库里存储路径?小弟没有这方面的经验...
我要把本地的word文件上传到服务器,是把word文件转换格式塞到数据库(sqlserver)呢?还是直接存到服务器的硬盘里,然后在数据库里存储路径?小弟没有这方面的经验,望高手们给出详细的思路和代码,小弟拜谢!!!
我不知道如何对服务器进行word存取,我现在想把word直接存到sqlserver数据库,该以什么类型存储呢?是varbinary、XML、image还是其它的什么类型?如果先转换成XML类型,图片和表格怎么处理呢?不解,望达人给个详细的思路。。。 展开
我不知道如何对服务器进行word存取,我现在想把word直接存到sqlserver数据库,该以什么类型存储呢?是varbinary、XML、image还是其它的什么类型?如果先转换成XML类型,图片和表格怎么处理呢?不解,望达人给个详细的思路。。。 展开
5个回答
展开全部
用FTP的形式上传即可,不限制文件格式
以下所有需要修改的地方用*表示,先修改掉再用
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");
}
}
}
以下所有需要修改的地方用*表示,先修改掉再用
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");
}
}
}
展开全部
你可以这样办!
在数据库中有一个字段叫做long raw可以用于存储word文件的内容。
然后,你在定义一个文件的类型比如word型的就是doc,记事本型的就是txt等等。
存储时,将word内容存储到long raw字段中,文件类型存到另一个字段中。
读取时,先读出内容,然后读取文件的类型格式,然后再显示。
-------------------------------这个能行,我们试过!放心吧!
在数据库中有一个字段叫做long raw可以用于存储word文件的内容。
然后,你在定义一个文件的类型比如word型的就是doc,记事本型的就是txt等等。
存储时,将word内容存储到long raw字段中,文件类型存到另一个字段中。
读取时,先读出内容,然后读取文件的类型格式,然后再显示。
-------------------------------这个能行,我们试过!放心吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
存数据库的话用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();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我建议还是直接存在服务器的好多了,这样会减少很多不必要的麻烦。如果你转换格式存着的话,如果Word里面有图片和表格的话, 那问题就特多了,存数据库一般是要将Word转换为html文件存进去的,而html和图片有是分开为两个文件的····问题多多··
当然存服务器的话,我们就存好路径文件名就OK 了··
当然存服务器的话,我们就存好路径文件名就OK 了··
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以直接上传
你搜索一下 很简单的
你搜索一下 很简单的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询