文件上傳:
一、將文件上傳到指定路徑
使用FileUpload控件,使用控件的SaveAs另存爲方法,需
要絕對路徑;
string path = "Uploads/aaa.txt";//文件的相對路徑
string endPath = Server.MapPath(path);//將相對路徑映射
成絕對路徑
FileUpload1.SaveAs(endPath);
問題:
文件名重名,文件被覆蓋javascript
優化1:
string path = "Uploads/" + FileUpload1.FileName;//
文件的相對路徑
能夠保留用戶選擇的文件名稱
問題:
許多人都上傳文件,確定會出現重名的狀況,那
就被覆蓋了java
優化2:
//拼接上傳時間,上傳用戶名,上傳文件全稱,防止併發
重名問題
string name = DateTime.Now.ToString
("yyyyMMddhhmmss") + Request.Cookies["user"].Value +
FileUpload1.FileName;
問題:
用戶可能會上傳超過默認大小的文件,那麼程序就會崩潰
,最大限制爲4MB大小
優化3:
擴容、在Web.config配置文件裏面添加如下一句話
<system.web>
<compilation debug="false" targetFramework="4.0" />
<httpRuntime maxRequestLength="40960"/>//增長這一句
,單位是KB
</system.web>
注意:擴容不要擴的太大,由於是佔內存空間的;
做業:去網上搜一下C#大文件上傳,斷點續傳
優化4:
增長超大驗證,有客戶端驗證和服務端驗證兩種方式;
C#服務端驗證:
//檢查是否有選中文件
if (FileUpload1.HasFile)
{
//若是有選中文件,那麼驗證文件大小是否超過4MB
if (FileUpload1.PostedFile.ContentLength > (4
* 1024 * 1024))
{
Label1.Text =
FileUpload1.PostedFile.ContentLength.ToString();
}
}
JS客戶端驗證:
<script type="text/javascript">
window.onload = function () {
document.getElementById('Button1').onclick =
function () {
var fl1 = document.getElementById
('FileUpload1');
//判斷是否有選中的文件
if (fl1.value.length <= 0) {
alert('請選擇要上傳的文件!');
return false;
}
else {
//驗證大小是否超過限制
if (fl1.files[0].size > (4 * 1024 *
1024)) {
alert('文件超過4MB!');
return false;
}
}
};
};
</script>
優化5:
限制用戶能選擇的文件類型:
限制普通人,控件屬性:accept=".jpg,.jpeg,.png";
限制奇葩:
//看看你選擇的文件是否符合個人要求
if (fl1.value.substr(fl1.value.length - 4)
!= '.jpg' && fl1.value.substr(fl1.value.length - 4) !=
'.png' && fl1.value.substr(fl1.value.length - 5) !=
'.jpeg')
{
alert(fl1.value.substr
(fl1.value.length - 4));
return false;
}
優生活網站,新增產品,須要上傳產品圖片,一、將圖片
傳到服務器上來,二、將圖片路徑保存進數據庫
//-----------上傳圖片-------------
//一、驗證web
//二、將選中的文件上傳到服務器指定文件夾上來
string path = "images/" + DateTime.Now.ToString
("yyyyMMddhhmmss") + FileUpload1.FileName;
FileUpload1.SaveAs(Server.MapPath(path));數據庫
//三、將圖片路徑存到數據庫
c.img = path;服務器
new chanpinData().Insert(c);
併發