上傳圖片是一大大大重點,一篇文章沒有圖片就沒有人想看了,一個教學文章如果沒有圖片上傳功能,也沒有意義。
目標:
1.上傳圖片
步驟:
step1.前端程式碼 (完整)
@section Styles {
<style>
.ck-editor__editable {
min-height: 500px;
}
</style>
}
<form asp-controller="Article" asp-action="CreateArticle" method="post">
<div class="form-group" style="width:700px;margin-right:auto;margin-left:auto;">
<textarea name="Content" class="form-control" id="editor" rows="50"></textarea>
</div>
<button type="submit">Send</button>
</form>
@section Scripts {
<script src="~/ckeditor7/build/ckeditor.js"></script>
<script>
// ckEdit 5
ClassicEditor
.create(document.querySelector('#editor'), {
removePlugins: [ 'ImageResize' ,'ImageStyle' ,'ImageToolbar' ],
ckfinder: {
uploadUrl: '/Article/Uploads'
}
})
.catch(error => {
console.error(error);
});
</script>
}
1.這邊首先 先跟 ckeditor 綁定(所以會用jQuery選取器,選擇editor這個Id)。
querySelector('#editor') 綁定 <textarea name="Content" id="editor">
2.在js程式碼這邊,加上uploadUrl 後面是圖片上傳的後端的路徑(就是下方程式碼)。
ckfinder: {
uploadUrl: '/Article/Uploads'
}
3.之後就是 post 回傳的路徑。
step2.後端程式碼,在Articlecontroller.cs 加上此function
那這邊會看到有 var obj = await _article.UploadImage(upload);
可以先註解掉(不然目前會出錯),因為這是真正處理、儲存圖片的地方。
public async Task<IActionResult> Uploads(IFormFile upload)
{
var obj = await _article.UploadImage(upload);
return Json(new
{
uploaded = obj.Uploaded,
fileName = obj.FileName,
url = obj.Url,
error = new
{
message = obj.Msg
}
});
}
今天只要能確定圖片有上傳到後端就好了,可以下中斷點看看。