0

我有一个c# webapp,我需要允许用户将整个文件夹及其内容上传到服务器。我的代码仅在本地测试时才有效,因为它正在搜索本地目录的所有内容并上传

当我将应用程序部署到服务器时,我不确定如何保持这个工作。有人知道允许您一次上传整个文件夹的 Web 界面示例吗?

private void uploadWebsite(string dirPath, string uploadPath, string imagesPath)
{
     string[] files = Directory.GetFiles(dirPath, "*.*");
     string[] subDirs = Directory.GetDirectories(dirPath);

     foreach (string file in files)
     {
         ftpClient.upload(uploadPath + "/" + Path.GetFileName(file), file);
         if (file.Contains(".jpg") || file.Contains(".png") || file.Contains(".gif"))
             ftpClient.upload(uploadPath + "/images/" + Path.GetFileName(file), file);
     }

     foreach (string subDir in subDirs)
     {
         ftpClient.createDirectory(uploadPath + "/" + Path.GetFileName(subDir));
         uploadWebsite(subDir, uploadPath + "/" + Path.GetFileName(subDir), null);
     }
}
4

1 回答 1

0

为了获得可用的最终用户体验,您必须依靠 Flash 来提供上传控件。像这样的东西:

http://webdeveloperplus.com/jquery/multiple-file-upload-with-progress-bar-using-jquery/

这归结为向最终用户提供一次选择多个项目的方法。后端的代码也发生了巨大的变化,因为您将处理一系列文件上传。

维护目录结构也可能是个问题;IIRC [大多数/全部?] 浏览器仅在使用 multipart/form-data 传输数据时提供文件名。

您应该考虑是否要求最终用户创建一个 zip 文件 - 因此只需要选择一个文件进行上传并保留目录结构 - 可能是解决此问题的更好解决方案。

于 2013-02-17T19:29:12.643 回答