欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

.Net WebApi+ElementPlus實(shí)現(xiàn)附帶數(shù)據(jù)的文件上傳

admin
2024年9月16日 20:56 本文熱度 589
前言

    
    前后端分離項(xiàng)目,數(shù)據(jù)交互都知道怎么做,文件上傳應(yīng)該也都知道。但是存在有些情況下,我們需要將文件和數(shù)據(jù)同時(shí)提交。ElementPlus的upload上傳組件提供了可攜帶數(shù)據(jù)的data屬性,但是在.NetWebApi下應(yīng)該如何做接收呢?下面通過示例我們簡(jiǎn)單實(shí)現(xiàn)一下。
 
 



開發(fā)環(huán)境:.NET 6

開發(fā)工具:Visual Studio 2022

 

實(shí)現(xiàn)步驟
  1. 這里假設(shè)我們已經(jīng)有了一個(gè)Vue3項(xiàng)目,并且引入了ElementPlus。
  2. 首先是前端的html代碼,這里我們需要同時(shí)將數(shù)據(jù)內(nèi)容和文件上傳到后臺(tái),如下:
    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">          <el-form-item label="數(shù)據(jù)內(nèi)容" prop="Value">            <el-input v-model="formData.Value" :autosize="{ minRows: 8, maxRows: 16 }" type="textarea" clearable></el-input>          </el-form-item>        </el-col>
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">          <el-form-item label="選擇文件" prop="Name">            <el-input v-model="formData.Name" readonly>              <template #append>                <el-upload                  ref="uploadRef"                  :action="upload.action"                  :headers="upload.headers"                  :show-file-list="false"                  :on-change="onUploadChange"                  :before-upload="onUploadBefore"                  :on-success="onUploadSuccess"                  :on-error="onUploadError"                  :auto-upload="false"                  :data="formData"                  accept=".txt"                >                  <el-button type="primary">選擇文件</el-button>                </el-upload>              </template>            </el-input>          </el-form-item>        </el-col>

  1. 接下來(lái)是vue代碼:
    const uploadRef = ref<UploadInstance>();const formData = ref({  Name: '',  Value: '',});const onUploadChange = (file: any) => {  formData.value.Name = file.name;};const onUploadBefore = (file: any) => {  if (file.name.lastIndexOf('.txt') != file.name.length - 4) {    EMsg.error('請(qǐng)選擇文本文件');    return false;  }  return true;};const onUploadSuccess = (res: any) => {  EMsg(res);  onClose();  emit('refresh');};const onUploadError = (res: any) => {  EMsg.error(res.Msg);};//提交按鈕觸發(fā)const onSubmit = () => {    uploadRef.value!.submit();  });};

  1. 上面的代碼就會(huì)在提交的時(shí)候?qū)?shù)據(jù)和內(nèi)容直接給到WebApi,WebApi接收代碼如下:
    //先定義一個(gè)接收類public class InFileData    {        public string Name {  get; set; }        public string Value { get; set; }        public IFormFile? file { get; set; }    }
    [HttpPost]public ApiJsonResult Add([FromForm] InFileData input){    if (input.file == null)    {        return ApiJsonResult.Convert(false,"沒有文件");    }    string filter = Path.GetExtension(input.Name);    string name = Guid.NewGuid().ToString("N") + filter;    string path = Path.Combine(App.StaticData.UploadPath, name);    using var stream = new FileStream(path, FileMode.OpenOrCreate);    input.file.CopyTo(stream);    //獲取到的表單數(shù)據(jù)    string value=input.Value;
       return ApiJsonResult.Success;}

  1. 完成 
實(shí)現(xiàn)效果

 ???點(diǎn)擊此處下載源碼???


該文章在 2024/9/18 12:26:33 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved