PDA

View Full Version : Giới hạn file upload bằng ASP.Net



NgocHien
09-07-2003, 18:14
Các anh cho em hỏi với.

Em đang lam 1 trang upload, nhưng chỉ muốn giới hạn file cần upload là file ảnh, là: gif, jpg mà thôi.

Em mong các anh giúp em với, cảm ơn các anh nhiều lắm

vanlang
09-07-2003, 18:36
u đợi tui về tui coi lại rùi tui trả lời cho .. u đã thử set đuôi cho file uplên là mấy cái chấm đuôi đó chưa .. đừng cho all file *.* để nó khỏi hiện lên .. sau đó dung try catch để bắt lỗi mấy đuôi khác xem sao

bpmtri
09-07-2003, 18:41
Bạn thêm atrribute accept="image/*" vào thử xem!



<input type="file" accept="image/*" ... >

NgocHien
09-07-2003, 18:56
Bạn thêm atrribute accept="image/*" vào thử xem!



<input type="file" accept="image/*" ... >


Em không hiểu ! :emlaugh:

vanlang
09-07-2003, 19:06
tui cũng không hiểu luôn .. bác làm ơn giải thích rõ hơn được không

bpmtri
09-07-2003, 21:31
Sorry, nói rõ hơn chút xíu nhé.

Bạn muốn upload file lên Server thì trong Form của bạn phải dùng control File, VD



<input type="file" name="fileImage" id="fileImage" runat="server"> phải không nào?

Bây giờ bạn thêm accept="image/*" vào, nó sẽ như thế này:


<input type="file" name="fileImage" id="fileImage" runat="server" accept="image/*">


Cách này cũng không hạn chế được hết tất cả các trường hợp, vì người sử dụng có thể nhập trực tiếp đường dẫn vào trong ô textbox của control mà không dùng nút Browse.... Do đó, để bảo đảm upload đúng file ảnh (GIF, JPEG) như bạn yêu cầu thì bạn kiểm tra trên Server, nghĩa là bạn lấy tên file, rồi cắt phần mở rộng nó để kiểm tra xem có là .GIF, .JPG, .JPEG hay không, nếu không thì báo lỗi cho người sử dụng biết đã upload file không hợp lệ!

Hiện tại tui không có ngồi tại máy nên không gửi code cho bạn tham khảo được, nhưng với những hướng dẫn trên, mong rằng bạn sẽ làm được!

vanlang
09-07-2003, 21:57
hơi hơi hiểu rùi .. bác có thể gửi code lên cho tui tham khảo với nhé . thanks

NgocHien
10-07-2003, 10:44
Gởi cho em dzới nha, anh gởi lên mạng cho bà con cùng xem luôn nha

puppy
10-07-2003, 14:37
Gởi source của bác bpmtri lên nè.

public bool IsValidImagesFile(string filename)
{
int index = filename.LastIndexOf(".");
string[] strImageExts = {"gif","jpg","jpeg","jpe"};
if (index > 0)
{
string ext = filename.Substring(index+1).ToLower();
int count = 0;
for (int i = 0; i < strImageExts.Length; i++)
if (ext != strImageExts[i])
count++;
if (count == strImageExts.Length)
return false;
else
return true;
}
return false;
}



Hi vọng bạn đọc hiểu hen.

1011
10-07-2003, 15:22
Dùng thuộc tính accept của input file
File aspx:
...
<input type="file" id="filAtt">
...

Trong file vb:
filAtt.Accept = "*.txt, *.htm, *.bmp, *.jpg, *.gif"

Nếu muốn có thể thêm nhiều dạng file khác.