Поскольку я работал с SWFUpload до того, как подумал, я дам вам часть кода, который я использовал для своего ActionResult. Ниже приведен код, который я использовал. «CAA» - это пространство имен моего проекта, поэтому «CAA.Utility.IO» - это мое пространство имен для некоторых созданных мной вспомогательных классов, которые включены ниже.
public ActionResult Index()
{
if (Request.Files.Count != 0)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < Request.Files.Count; ++i)
{
CAA.Utility.IO.IFileStore _fileStore = new CAA.Utility.IO.DiskFileStore(Server.MapPath("~/assets/uploads/temp"));
sb.Append(_fileStore.SaveUploadedFile(Request.Files[i]));
}
return new ContentResult() { Content = sb.ToString(), ContentType = "text/html" };
}
else
return new ContentResult() { Content = "", ContentType = "text/html" };
}
И мой класс IFileStore:
using System;
using System.Web;
namespace CAA.Utility.IO
{
public interface IFileStore
{
string SaveUploadedFile(HttpPostedFileBase fileBase);
}
}
И мой класс IDiskStore:
using System;
using System.Web;
using System.IO;
using System.Web.Hosting;
namespace CAA.Utility.IO
{
public class DiskFileStore : IFileStore
{
public DiskFileStore() { }
public DiskFileStore(string UploadFolder)
{
this._uploadsFolder = UploadFolder;
}
public string UploadFolder
{
get
{
return _uploadsFolder;
}
set
{
_uploadsFolder = value;
}
}
private string _uploadsFolder = HostingEnvironment.MapPath("~/assets/uploads/temp");
public string SaveUploadedFile(HttpPostedFileBase fileBase)
{
int lastPeriod = fileBase.FileName.LastIndexOf(".");
string fileExtension = "";
if (lastPeriod != -1)
{
fileExtension = fileBase.FileName.Substring(lastPeriod);
}
var identifier = Guid.NewGuid();
fileBase.SaveAs(GetDiskLocation(identifier, fileExtension));
return identifier.ToString() + fileExtension;
}
private string GetDiskLocation(Guid identifier, string FileExtension)
{
return Path.Combine(UploadFolder, identifier.ToString() + FileExtension);
}
}
}
Вы заметите, что когда вы создаете экземпляр DiskFileStore, он принимает путь, в который вы хотите сохранить файлы. Если вы не укажете, у него есть местоположение файла по умолчанию. Метод вернет строку с GUID и расширением.