台灣最大程式設計社群網站
線上人數
1910
 
會員總數:246570
討論主題:190029
歡迎您免費加入會員
討論區列表 >> Java Script/ Node.js >> 如何判斷檔案是否上傳
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何判斷檔案是否上傳
價值 : 20 QP  點閱數:1925 回應數:5
樓主

Candas
門外漢
0 3
104 5
發送站內信


大家好 我目前有一個小問題
我有一表單 要上傳檔案
目前問題是 如何判斷檔案是否有上傳

我目前有想到兩個方法

第一個就是 用PHP的$_FILES["file"]["error"]用PHP的檔案錯誤代碼來 判斷是不是有上傳
只是我不知道 是不是要送出表單後 才能得到這個錯誤代碼 還是這根本行不通

第二個是把值放進 JS 裡面 像這樣

var file = add.file.value; //<form name="add"> <input name="file">

if (file = '') { //假設值為空就顯示
alert("沒有圖片");
}

我有看過FSO 但他似乎是只能用在IE? 我是用Chrome 所以我想是不能用的

煩請大大指點


搜尋相關Tags的文章: [ 檔案上傳 ] ,
本篇文章發表於2016-10-19 14:15
1樓
最有價值解答

四百龍銀
檢舉此回應
如果是圖片
if(this.fileSize<=0)
{this.src="default.png";}
else{...}
如果是其他檔案因安全性問題
建議寫一個API 由FrontEnd去確認Server是否有檔案

本篇文章回覆於2016-10-19 14:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Candas
檢舉此回應
依龍銀版主的解說我這樣打 可以運作只是 0要 改成null
var file = add.file.value;
if(file.fileSize == null){
alert("沒有圖片");
}

我後來找到JQuery 的打法
這個 我不懂的是變數$('[name = file]') 為什麼要中括號
不知道這種打法是否也合適?

if ($('[name = file]').val() =='' ) {
// $('[name = file ]').val() =='' JQuery 打法
alert("沒有上傳任何東西");
}
本篇文章回覆於2016-10-19 15:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
一般來說,想要知道是否有上傳檔案這個定義

其一是「是否有選擇上傳檔案」,這並非指的是已經上傳了。而是指本機端是否有選擇。
如搭配jquery的寫法。一般是用



這樣來取得是否有選擇擋案數量

另外一種是要判斷真正有上傳成功的。
這會需要使用ajax處理。利用ajax來上傳檔案並回傳完全值。
你可以找找「上傳圖片預覽圖」這些關鍵字。
這些都是依照用圖片上傳完成後,利用ajax回傳其資料並建立基本的顯示預覽處理的方式


第一種方式比較單純。如果需要第二種的話。其要確定好你的後端語言是什麼才行了

本篇文章回覆於2016-10-19 15:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

四百龍銀
檢舉此回應
這種方式僅限圖片連結,檔案的判斷於前端是不符合安全性的唷

另外關於您說的中括號 只是用來尋找Dom的其中一種方式而已

JQuery Name Selector
本篇文章回覆於2016-10-19 16:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

四百龍銀
檢舉此回應
我覺得妳得參考星空大的說明,
並參考我在一樓所說使用API去確認後端是否真的有檔案 才是最好的解決之道
本篇文章回覆於2016-10-20 00:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.