<appSettings>
<add key="UploadFileFolder" value="/Uploads/TestUpload/" />
</appSettings>
WebService项目中的ImageService.asmx代码
/// <summary>
/// Webservice中的下载文件处理函数
/// </summary>
/// <param name="filePath">文件路径</param>
/// <returns>返回文件流</returns>
[WebMethod(Description = "下载服务器站点文件,传递文件相对路径")]
public byte[] DownloadFile(string strFilePath)
{
FileStream fs = null;
string CurrentUploadFolderPath = Server.MapPath(ConfigurationManager.AppSettings["UploadFileFolder"]);
string CurrentUploadFilePath = CurrentUploadFolderPath + strFilePath;
if (File.Exists(CurrentUploadFilePath))
{
try
{
///打开现有文件以进行读取。
fs = File.OpenRead(CurrentUploadFilePath);
int b1;
System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
while ((b1 = fs.ReadByte()) != -1)
{
tempStream.WriteByte(((byte)b1));
}
return tempStream.ToArray();
}
catch (Exception ex)
{
return new byte[0];
}
finally
{
fs.Close();
}
}
else
{
return new byte[0];
}
}
Winform项目中的窗体下载按钮代码
private void btnDownload_Click(object sender,EventArgs e)
{
string CurrentServiceFilePath = this.txtServiceFile.Text.Trim();
string CurrentDownloadFolderPath = this.txtDownloadFolder.Text.Trim();
if (CurrentServiceFilePath == "" || CurrentDownloadFolderPath == "")
{
MessageBox.Show(DownloadImage(CurrentServiceFilePath,CurrentDownloadFolderPath));
}
else if (CurrentServiceFilePath == "")
{
MessageBox.Show("请填写要下载的服务器文件路径和选择本地保存目录");
}
else if (CurrentDownloadFolderPath == "")
{
MessageBox.Show("请填写要下载的服务器文件路径和选择本地保存目录");
}
}
/// <summary> /// 通过WebService下载文件 /// </summary> /// <param name="ServiceFilePath">服务器图片路径</param> /// <param name="DownloadFolderPath">本地图片路径</param> private string DownloadImage(string ServiceFilePath,string DownloadFolderPath) { try { string DownloadFileName=""; if (ServiceFilePath.Contains("/")) { DownloadFileName=ServiceFilePath.Substring(ServiceFilePath.LastIndexOf("/")); } else { DownloadFileName = ServiceFilePath; } string DownloadFilePath = DownloadFolderPath +"\\"+ DownloadFileName; localhost.ImageService myImageService=new localhost.ImageService(); byte[] bytes = myImageService.DownloadFile(ServiceFilePath); if (bytes != null) { if (!Directory.Exists(DownloadFolderPath)) { Directory.CreateDirectory(DownloadFolderPath); } if (!File.Exists(DownloadFilePath)) { File.Create(DownloadFilePath).dispose(); } //如果不存在完整的上传路径就创建 FileInfo downloadInfo = new FileInfo(DownloadFilePath); if (downloadInfo.IsReadOnly) { downloadInfo.IsReadOnly = false; } //定义并实例化一个内存流,以存放提交上来的字节数组。 MemoryStream ms = new MemoryStream(bytes); //定义实际文件对象,保存上载的文件。 FileStream fs = new FileStream(DownloadFilePath,FileMode.Create); ///把内内存里的数据写入物理文件 ms.Writeto(fs); fs.Flush(); ms.Flush(); ms.Close(); fs.Close(); fs = null; ms = null; } return "下载成功"; } catch(Exception ex) { return "下载失败"+ex.Message; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。