2012-01-30 41 views
6

Tôi đang làm việc trên một ứng dụng web đọc dữ liệu từ một tập hợp các tệp văn bản và ánh xạ nó tới cơ sở dữ liệu MySQL.Duyệt qua tệp phía máy chủ

Hiện tại, biểu mẫu yêu cầu nhập thủ công của đường dẫn tệp, nhưng tôi muốn thêm trình chọn tệp vào trường này để làm cho phần đó của thiết lập ít tẻ nhạt hơn một chút.

Các giải pháp tôi đã tìm thấy cho phép lựa chọn một tệp, nhưng tôi đang tìm một giải pháp cho phép sử dụng các mẫu nhập, vì hầu hết công việc của chúng tôi yêu cầu chúng tôi kéo nhiều tệp ra khỏi máy chủ đi.

Bất kỳ trợ giúp nào trong vấn đề này được đánh giá cao.

+0

Hãy xem https://github.com/moskiteau/backbone-filetree – moskiteau

Trả lời

13

Phải mất rất nhiều tìm kiếm và một số công việc xung quanh, nhưng tôi tìm thấy một câu trả lời hợp lý khả thi cho việc này.

Vấn đề lớn nhất tôi gặp phải là duyệt qua các tệp phía máy chủ. Tôi đã tìm thấy một plugin jQuery tại số A Beautiful Site đã giải quyết được sự cố đó.

Đây là trình duyệt tệp AJAX có tập lệnh trình kết nối phía máy chủ cho JSP, PHP, ASP và các tệp khác.

tôi đã xây dựng cây hồ sơ của ứng dụng web bằng cách sử dụng kịch bản sau đây:

$(document).ready(function() { 
    $('#loadFolderTree').fileTree({ 

     root: '/server_root/subfolder/tree_root', 
     script: '/js/jquery_file_tree/connectors/jqueryFileTree.jsp', 
     multiFolder: false, 

    });  
    }); 

Những điều tốt đẹp về kịch bản này là nó trả về đường dẫn tập tin được lựa chọn như là một String. Với một số bổ sung nhỏ để xử lý tập tin mặc định của kịch bản, tôi đã có thể viết các đường dẫn tập tin trở lại lĩnh vực hình thức phù hợp với đoạn mã sau:

}, function(file) { 
      var loadPat = document.getElementById("loadPattern"); 
      loadPat.value = file.replace("/server_root/subfolder/tree_root/", ""); 

Kể từ khi hình thức đã được xây dựng để xử lý các file liên quan đến gốc , không cần phải in toàn bộ đường dẫn, vì vậy đoạn mã cuối cùng này cắt đường dẫn đến thư mục gốc và đặt giá trị biểu mẫu thành nội dung còn lại của Chuỗi.

Quan trọng nhất, chuỗi trả về có thể chỉnh sửa trong biểu mẫu cho phép người dùng thay đổi trả về tệp đầu vào-1.txt thành tệp nhập * .txt và nhập nhiều tệp trong một lần chạy.

Đây là kết quả cuối cùng:

$(document).ready(function() { 
    $('#loadFolderTree').fileTree({ 

     root: '/server_root/subfolder/tree_root', 
     script: '/js/jquery_file_tree/connectors/jqueryFileTree.jsp', 
     multiFolder: false, 

    }, function(file) { 
     var loadPat = document.getElementById("loadPattern"); 
     loadPat.value = file.replace("/server_root/subfolder/tree_root/", ""); 

    });  
    }); 
+0

Dường như không ai đã duy trì nó từ năm 2008, nhưng nó vẫn có vẻ để làm tốt công việc. –

+0

Đến với 5 năm sau (!) Nhưng tôi tự hỏi nếu bạn có nhiều thành công với điều này? Tôi đã sử dụng điều này cho một tình huống giống nhau nhưng khi tôi chỉ jqueryfiletree tại vị trí mạng của chúng tôi các tập tin/thư mục không theo thứ tự chữ cái sau một vài lớp. Tuy nhiên chỉ vào ổ C: \ địa phương của tôi nó hoạt động hoàn hảo. –

+0

Có, trên thực tế chúng tôi vẫn sử dụng nó trong ứng dụng của chúng tôi. Tôi nhận thấy một vấn đề tương tự với việc sắp xếp không lâu sau khi danh sách tệp của chúng tôi bắt đầu dài hơn. Tôi đã phải sửa đổi các kết nối jsp tôi được sử dụng để làm một số phân loại bằng tay trước khi trả lại danh sách cho trình duyệt. – Mike

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