2010-08-15 43 views

Trả lời

44

Bạn không thể: Đó là tính năng bảo mật trong tất cả các trình duyệt hiện đại.

Đối IE8, nó tắt theo mặc định, nhưng có thể được kích hoạt bằng cách sử dụng thiết lập bảo mật:

Khi một tập tin được chọn bằng cách sử dụng các input type = đối tượng tập tin, giá trị của các tài sản giá trị phụ thuộc vào giá trị của đường dẫn "Bao gồm đường dẫn thư mục cục bộ khi tải tệp lên máy chủ" cho vùng bảo mật được sử dụng để hiển thị trang Web có chứa đối tượng đầu vào.

Tên tệp đủ điều kiện của tệp đã chọn chỉ được trả về khi cài đặt này được bật. Khi cài đặt bị tắt, Internet Explorer 8 sẽ thay thế đường dẫn thư mục và ổ đĩa cục bộ bằng chuỗi C: \ fakepath \ để ngăn chặn việc tiết lộ thông tin không phù hợp.

Trong tất cả các trình duyệt chính hiện tại khác mà tôi biết, nó cũng bị tắt. Tên tệp là tốt nhất bạn có thể nhận được.

Thông tin chi tiết và liên kết tốt trong this question. Nó đề cập đến việc nhận giá trị phía máy chủ, nhưng vấn đề là giống nhau trong JavaScript trước khi gửi biểu mẫu.

+5

Tôi không thể tải đường dẫn đến tệp bằng trình duyệt? Đây là điên rồ !! – gruszczy

+5

@grusz Vâng, nó phụ thuộc vào quan điểm của bạn: Đó không phải là doanh nghiệp của trang web nơi tệp được tải lên đến từ thực tế. Nó chỉ là đau đớn khi bạn muốn lưu trữ vị trí tập tin ban đầu như một dịch vụ cho người dùng, tôi biết .... Flash dựa trên các thành phần tải lên như uploadify hoặc swfupload.org * có thể * có nhiều tự do ở đây. –

+0

Vì vậy, điều này có nghĩa, tôi không thể sao chép giá trị từ một đầu vào tập tin khác, bởi vì tôi không bao giờ có đường dẫn đầy đủ? – gruszczy

-17

như đã nêu ở trên đây thường là sự cố về quyền. thử và di chuyển tệp đến một khu vực khác và cấp cho nó toàn quyền.

var path = $ ('# file'). Attr ("value");

+1

di chuyển tệp đến một khu vực khác và cấp cho nó các quyền khác nhau sẽ không cung cấp cho bạn đường dẫn tệp đầy đủ. quyền truy cập tệp cục bộ có rất ít hoặc không có gì để làm với cách trình duyệt xử lý các tệp –

13

Vâng, không thể có đường dẫn đầy đủ nhưng chúng tôi có thể có đường dẫn tạm thời.

Hãy thử này:

Nó sẽ cung cấp cho bạn một con đường tạm thời không phải là con đường chính xác, bạn có thể sử dụng kịch bản này nếu bạn muốn hiển thị hình ảnh được lựa chọn như trong ví dụ này jsfiddle (Hãy thử nó bằng cách selectng hình ảnh cũng như các file khác): -

JSFIDDLE

đây là mã: -

HTML: -

0.123.
<input type="file" id="i_file" value=""> 
<input type="button" id="i_submit" value="Submit"> 
    <br> 
<img src="" width="200" style="display:none;" /> 
     <br> 
<div id="disp_tmp_path"></div> 

JS: -

$('#i_file').change(function(event) { 
var tmppath = URL.createObjectURL(event.target.files[0]); 
    $("img").fadeIn("fast").attr('src',URL.createObjectURL(event.target.files[0])); 

    $("#disp_tmp_path").html("Temporary Path(Copy it and try pasting it in browser address bar) --> <strong>["+tmppath+"]</strong>"); 
}); 

của nó không chính xác những gì bạn đang tìm kiếm, nhưng có thể nó có thể giúp bạn ở đâu đó.

+1

Điều này cực kỳ hữu ích. Chính xác những gì tôi đang tìm kiếm. Cảm ơn bạn. – JeffA

+0

Đó chính xác là những gì tôi muốn. Cảm ơn rất nhiều!! –

+0

Tôi đã lãng phí hầu hết thời gian của mình cho tập lệnh hữu ích này :) Cảm ơn Bro – w3debugger

Các vấn đề liên quan