gpt4 book ai didi

jQuery blueimp 文件上传 NuGet 包 MVC 4 文件重命名

转载 作者:行者123 更新时间:2023-12-01 04:11:09 24 4
gpt4 key购买 nike

我想在上传文件之前重命名该文件。我可以在 JavaScript 中重命名它,以便它显示在 View 中,但我不确定如何在服务器上重命名它,以便可以使用新名称将其保存在文件系统中。我看到一些使用 PHP 的示例,但没有看到 .Net 中的 MVC Controller 。示例 Controller 只有一个操作来返回 View ,因此我不确定如何拦截 POST。有人有一些工作代码可以做到这一点吗?

更新我使用了https://github.com/blackcity/Backload/tree/master/Examples/Example04处的代码这样尝试重命名文件没有成功。

    public class FileUploadInstanceController : Controller
{
public async Task<ActionResult> FileHandler()
{
FileUploadHandler handler = new FileUploadHandler(Request, this);
handler.IncomingRequestStarted += handler_IncomingRequestStarted;

ActionResult result = await handler.HandleRequestAsync();
return result;
}

void handler_IncomingRequestStarted(object sender, Backload.Eventing.Args.IncomingRequestEventArgs e)
{
// Demo: Disallow PUT request within the event handler.
if (e.Context.HttpMethod == "PUT") e.Context.PipelineControl.ExecutePipeline = false;
var values = e.Param.BackloadValues;//added
values.FileName = "test.jpg";//added

}
}

更新2我想我需要更改此处理程序中的文件名,但它也不起作用。 https://github.com/blackcity/Backload/wiki/Example-12

async Task handler_StoreFileRequestStartedAsync(object sender, Backload.Eventing.Args.StoreFileRequestEventArgs e)
{
// Demo 6: Change the file to be stored
string filepath = Server.MapPath("~/Files/test.jpg");
var file = e.Param.FileStatusItem;
file.FileName = "test.jpg";//added

//if (System.IO.File.Exists(filepath))
//{
// byte[] bytes = null;
// using (FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read))
// {
// bytes = new byte[stream.Length];
// await stream.ReadAsync(bytes, 0, (int)stream.Length);
// }
// file.FileData = bytes;
// file.FileSize = bytes.LongLength;
// file.ContentType = "image/jpeg";
//}

e.Context.PipelineControl.Message.MessageText += string.Format(_logpattern, "log-post", "StoreFileRequestStartedAsync", DateTime.Now.ToLongTimeString());

}

最佳答案

通过反复试验,我添加了更新状态的调用:

void Handler_StoreFileRequestStarted(object sender, Backload.Eventing.Args.StoreFileRequestEventArgs e)
{
var file = e.Param.FileStatusItem;
file.FileName = "test.jpg"; // Or whatever logic needed to change the file.
file.UpdateStatus(true);
}

“true”是一个名为 updateStorageInfo 的参数,需要它才能保持不变。

关于jQuery blueimp 文件上传 NuGet 包 MVC 4 文件重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20353843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com