I have sucesfully configured custom file provider like this
<slickUpload>
<uploadProfiles>
<add name="pc">
<uploadStreamProvider type="PC.CustomFileUploadStreamProvider, PC" location="~/CustomFileNameFiles" />
</add>
</uploadProfiles>
</slickUpload>
Overided class like this
class CustomFileUploadStreamProvider : FileUploadStreamProvider
{
public CustomFileUploadStreamProvider(UploadStreamProviderElement settings)
: base(settings)
{
}
public override string GetServerFileName(UploadedFile file)
{
var processId = Guid.NewGuid().ToString();
var path = Path.Combine(PC.Settings.GetFileStoragePath, processId);
Directory.CreateDirectory(path);
var serverFileName = Path.Combine(path, file.ClientName);
file.Data.Add("ProcessId", processId);
return serverFileName;
}
}
and I would like to pass custom data to my upload controller(I am using MVC).
Please note the line
file.Data.Add("ProcessId", processId);
But when I try to read UploadSession class in upload controller there is no my custom data. How to pass data from FileUploadStreamProvider to UploadSession?
public class HomeController : Controller
{
public ActionResult Index(UploadSession session)
{
//MyCode
}
}