寫了一個專用上傳檔案的方法放在控制里,直接外部呼叫沒問題,但在另一個控制器里呼叫這個方法就提示System.NullReferenceException: Object reference not set to an instance of an object.錯誤,說這行有問題: var files = Request.Form.Files;,不知是呼叫的方法不對,還是什么原因,請高人指點萬份感謝,附兩個方法代碼如下:
這個是上傳專用的控制器方法
public async Task<IActionResult> UploadFile()
{
//Web根目錄
string webRootPath = ConfigHelper.GetConfig("ImgPath");
var date = Request;
var files = Request.Form.Files;
long size = files.Sum(f => f.Length);
string shortTime = DateTime.Now.ToString("yyyy/MM/dd") + "/";
string filePhysicalPath = webRootPath+"/Content/gtp/" + shortTime; //檔案路徑 可以通過注入 IHostingEnvironment 服務物件來取得Web根目錄和內容根目錄的物理路徑
... ...
using (var stream = new FileStream(filePhysicalPath + fileName, FileMode.Create))
{
await file.CopyToAsync(stream);
}
}
}
JObject job = new JObject();
job.Add(new JProperty("data", jFile));
return Ok(job.ToString());
}
另一個控制器呼叫的方法是這樣的
private UpFileController _upFileController;
public datacenterController(UpFileController upFileController)
{
_upFileController = upFileController;
}
public async Task<IActionResult> addChord2()
{
var t = await _upFileController.UploadFile();
return Ok(t.ToStr());
}
uj5u.com熱心網友回復:
一般的是類實體化為Null,就會出現在這種情況
uj5u.com熱心網友回復:
直接設定斷點除錯你自己的 Request.Form。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/259620.html
標籤:C#
上一篇:如何通過控制元件ID在Datalist的ItemTemplate內獲取前臺控制元件的值
下一篇:資料表序列化遇到的問題
