C# 如何向web api发送文件和字符串?
我创建了一个文件上传服务(asp.net),同时输入插入文件的用户名(按照下面的代码),现在我必须创建一个C# 如何向web api发送文件和字符串?,c#,asp.net,.net,upload,C#,Asp.net,.net,Upload,我创建了一个文件上传服务(asp.net),同时输入插入文件的用户名(按照下面的代码),现在我必须创建一个C客户端来上传文件,你能帮我吗 public class FIleUploadAPI { public IFormFile files { get; set; } } [HttpPost] public async Task<string> Post(FIleUploadAP
C
客户端来上传文件,你能帮我吗
public class FIleUploadAPI
{
public IFormFile files { get; set; }
}
[HttpPost]
public async Task<string> Post(FIleUploadAPI files, string nu)
{
if (files.files.Length > 0)
{
try
{
if (!Directory.Exists(_environment.WebRootPath + "/uploads/"))
{
Directory.CreateDirectory(_environment.WebRootPath + "uploads");
}
using (FileStream filestream = System.IO.File.Create(files.files.FileName))
{
files.files.CopyTo(filestream);
filestream.Flush();
string[] pht = files.files.FileName.Split(".");
filestream.Close();
if (!Directory.Exists(_environment.WebRootPath + "/uploads/"))
{
Directory.CreateDirectory(_environment.WebRootPath + "uploads/" + nu);
}
DateTime now = DateTime.Now;
System.IO.File.Move(files.files.FileName, @"uploads/" + nu + "/" + pht[0] + "_" + now.ToString("MMddyyyyHHmmss") + "." + pht[1]);
return "/uploads/" + nu + "/" + pht[0] + "_" + now.ToString("MMddyyyyHHmmss") + "." + pht[1];
}
}
catch (Exception ex)
{
return ex.ToString();
}
}
else
{
return "Unsuccessful";
}
}
公共类FIleUploadAPI
{
公共文件文件{get;set;}
}
[HttpPost]
公共异步任务Post(FIleUploadAPI文件,字符串nu)
{
如果(files.files.Length>0)
{
尝试
{
如果(!Directory.Exists(_environment.WebRootPath+“/uploads/”)
{
CreateDirectory(_environment.WebRootPath+“uploads”);
}
使用(FileStream FileStream=System.IO.File.Create(files.files.FileName))
{
files.files.CopyTo(filestream);
Flush();
字符串[]pht=files.files.FileName.Split(“.”);
filestream.Close();
如果(!Directory.Exists(_environment.WebRootPath+“/uploads/”)
{
CreateDirectory(_environment.WebRootPath+“uploads/”+nu);
}
DateTime now=DateTime.now;
System.IO.File.Move(files.files.FileName,@“uploads/”+nu+“/”+pht[0]+““+now.ToString(“mmddyyyyhmmss”)+“+pht[1]);
return“/uploads/”+nu+“/”+pht[0]+“”+now.ToString(“mmddyyyhhmmss”)+“+pht[1];
}
}
捕获(例外情况除外)
{
返回例如ToString();
}
}
其他的
{
返回“未成功”;
}
}
[HttpPost]
[路由(上传文件)]
公共异步任务Post(IFormFile文件,字符串nu)
{
如果(files.Length>0)
{
尝试
{
如果(!Directory.Exists(_environment.WebRootPath+“/uploads/”)
{
CreateDirectory(_environment.WebRootPath+“uploads”);
}
使用(FileStream FileStream=System.IO.File.Create(files.FileName))
{
CopyTo(filestream);
Flush();
字符串[]pht=files.FileName.Split(“.”);
filestream.Close();
如果(!Directory.Exists(_environment.WebRootPath+“/uploads/”)
{
CreateDirectory(_environment.WebRootPath+“uploads/”+nu);
}
DateTime now=DateTime.now;
System.IO.File.Move(files.FileName,@“uploads/”+nu+“/”+pht[0]+““+now.ToString(“mmddyyyyhmmss”)+“+pht[1]);
return“/uploads/”+nu+“/”+pht[0]+“”+now.ToString(“mmddyyyhhmmss”)+“+pht[1];
}
}
捕获(例外情况除外)
{
返回例如ToString();
}
}
其他的
{
返回“未成功”;
}
}`输入代码h
var formData=new formData();
var file=document.getElementById(“FileUpload”).files[0];
formData.append('FileUpload',file);
$.ajax({
url:“/controllername/UploadFile?nu=“+”mystring”,
数据类型:“json”,
键入:“post”,
数据:formData,
processData:false,
contentType:false,
成功:功能(结果){
},
错误:函数(){
}
});
请描述什么不起作用,我必须创建一个C#客户端来上传文件,你能帮我吗?
不是我们可以帮助解决的问题,它太广泛了。您是否看到了错误,什么不起作用,预期的输出/行为是什么?我建议忽略您对类、属性等的命名。如果命名没有明确表明其用途,则会给您自己和其他试图理解代码及其用途的人造成混淆。您需要将文件与字符串一起传递吗?或者文件正在web api中,但字符串未随文件一起传递?请详细说明您的具体问题。我必须将字符串与文件一起传递,如果我现在才回答,很抱歉。请更新您的帖子,包括对您建议的解决方案的解释。目前,它没有解释它的作用,通过提供一个解释,它将帮助OP和任何其他可能遇到此解决方案的人理解它;请同时格式化您的帖子。@Sridhar R不理解应该使用库以及此代码的实际用途。我不理解它是如何工作的,它给了我很多错误。我输入了您的代码,但找不到FormData()和document.getElementById和$。ajaxFormData是jquery功能,我已经使用了上述代码,我可以上传文件。var formData=new formData();var file=document.getElementById(“FileUpload”).files[0];formData.append('FileUpload',file);