Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何向web api发送文件和字符串?_C#_Asp.net_.net_Upload - Fatal编程技术网

C# 如何向web api发送文件和字符串?

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

我创建了一个文件上传服务(asp.net),同时输入插入文件的用户名(按照下面的代码),现在我必须创建一个
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);