用cos元件上傳檔案前先驗證檔案是否已存在

2021-05-25 00:32:32 字數 909 閱讀 3634

在做考試系統的「試題錄入」功能時發現,利用cos元件的multipartrequest可以很順利地上傳檔案並獲取客戶端其餘的表單引數

但是我想在上傳檔案前先驗證服務端目錄裡有沒有同名的檔案,如果有則取消上傳操作,以免意外覆蓋掉原有的檔案。這時候就不能使用multipartrequest了,因為呼叫該類的建構函式的同時就進行了檔案上傳操作,根本沒有機會進行重名等相關判斷。

於是我想可以用multipartparser獲取檔名,這樣就可以檢查服務端是否有重名檔案。

如果通過了重名驗證,我想再利用multipartrequest來進行檔案上傳,因為該類擁有獲取同名表單資訊,返回陣列的方法(例如answer和score),比較方便。可是無奈的發現,用了multipartparser後,就用不了multipartrequest了。

由於這一該死的限制,只好將multipartparser用到底了,上傳**如下:

獲取同名表單資訊的方法,由於mp的readnextpart方法是將提交的表單資訊乙個個讀取的,而同名的表單資訊(例如answer和score)的數量是不確定的,教師在出題時,一道填空題可以有多個空,每個空擁有對應的參***和分值,教師可以隨意新增或減少考空的數量。所以只能先將它們存放在乙個vector裡,等迴圈完畢後,再從該vector物件中提取陣列。

當然也可以直接把vector傳入model層的方法裡,不過之前編碼時已經讓該方法接受陣列引數,現在不想改動它了。

因為既然answer和score是一一對應的關係,所以最好的方法應該是,把它們都封轉在乙個物件(blank)裡面,充當它的屬性,然後把這些物件都放在乙個集合物件(例如vector)中,再把該集合作為引數呼叫model層的方法,讓model層的方法讀取並解釋這個vector物件。

但是現在不想改了,這只是乙個畢業設計,能夠混過答辯展示就行了。我想用更多的時間多看點別的書,因為畢業後可能更少時間看書了。

vue前端上傳檔案到COS

1 main.js中 cos相關的 vue.prototype.loadi vue.prototype.filecos function obj,callback request options then res var coskey cos.putobject err,res console.lo...

多檔案上傳元件

多檔案上傳元件 因為我還沒完成我的元件,不保證文章中的 的正確性.上傳多檔案 sander duivestein 介紹這是我寫的乙個上傳檔案的activex的元件.這個元件是使用winsocket 控制項呼叫ftp提交檔案.它僅僅工作在ie3.02或更高的版本,但有些客戶端使用netscape,因此...

vue webuploader 檔案上傳元件開發

最近專案中需要用到的webuploader大檔案的分片上傳,對接後端的fastdfs,於是著手寫了這個檔案上傳的小外掛程式,步驟很簡單,但是其中猜到的坑也不少,詳細如下 一 封裝元件 引入提供的webuploader.js uploader.swf css樣式就直接寫在元件裡面了 上傳到伺服器 暫停...