我想知道,客戶端上傳的文件會保存在哪裏,如果我使用多部分表單,並且這些文件將永久保存,並且如果有2個或更多用戶同時嘗試上傳文件,有文件被保存或覆蓋?使用多部分表單上傳的文件在哪裏被保存?
我的CGI腳本是一個腳本的.py
TNX提前
我想知道,客戶端上傳的文件會保存在哪裏,如果我使用多部分表單,並且這些文件將永久保存,並且如果有2個或更多用戶同時嘗試上傳文件,有文件被保存或覆蓋?使用多部分表單上傳的文件在哪裏被保存?
我的CGI腳本是一個腳本的.py
TNX提前
我不認爲上傳的文件得到保存「自動地」。您的腳本需要處理請求並保存它們。
這些文件將被保存在一個臨時目錄中,您將需要手動保存它們。
require "cgi-lib.pl";
$uploadDirectory = "YOUR_DIRECTORY";
open (OUTPUT_FILE, ">$upload_dir\/$in{'file'}") || & Die("Could not open file: $!");
undef $Buffer;
while (read($in{'file'},$Buffer,1024)) {
print OUTPUT_FILE $Buffer;
}
close(OUTPUT_FILE);
要處理多個上傳你可以確保你給他們不同的名稱(例如,包括user_ID的,或隨機的。):
可以使用PERL,像這樣控制的文件。
kkz ,,,我手動保存它們,但如果有2個或更多的用戶試圖同時上傳他們的文件同名的話讓說hello.html所以這些文件將被保存爲不同或將被覆蓋 – user1478564
再次這是一個手動過程。您可以驗證具有相同名稱的文件,並使用不同的名稱保存,例如Name_1,Name_2等。最佳做法是將文件保存爲隨機加密並將文本存儲在數據庫中,如果您使用暴露於路徑遍歷攻擊的前面提供的名稱(請參閱owasp.com網站以獲取有關webapps安全性的更多詳細信息) 。 – mihaisimi
而我沒有數據庫或MySQL的知識,所以這可能是2名用戶同名文件得到保存differnetly ?? – user1478564