Tôi đang tìm cách để (dễ dàng, theo sở thích;)) tạo liên kết tải xuống tệp trên máy chủ tệp riêng biệt.Tạo liên kết tải xuống tệp trên máy chủ tệp
Tình hình như sau: ứng dụng tôi đang phát triển (asp.net 2.0 trong vb.net nhưng tôi có vấn đề tương tự trong C#, hoặc giải pháp làm việc cho tôi) sẽ được chạy nội bộ cho một công ty. Thực hành tốt, lưu trữ tệp và ứng dụng web nằm trên hai máy chủ riêng biệt.
Tôi về cơ bản cần có khả năng tạo liên kết tải xuống tệp, URL duy nhất mà tôi có để truy cập tệp là \ servername \ folder1 \ folder2 \ folder3 \ file.txt (có thể là bất kỳ loại nào file)
Liên kết web chỉ đơn giản là không hoạt động. Đây là cách thiết lập hiện tại:
tablerowfield.Text = String.Format(
"<a href=""\\servername\folder1\folder2\folder3\{0}""
target=""_blank"">Click me</a>",
filename)
Điều này không có lý do rõ ràng. Nó được sử dụng để được thiết lập để viết tập tin đó vào đường dẫn ứng dụng và nó hoạt động hoàn hảo, nhưng nó không phải là thực hành tốt và đó là lý do tại sao tôi thay đổi nó (hoặc cố gắng).
Tôi đọc các giải pháp về cách tạo trang tải xuống và sau đó có bảng trong DB chứa liên kết và trả lại URL web thích hợp để tải xuống nhưng thời gian ràng buộc tôi gặp phải không cho phép tôi phát triển.
Giả sử tôi có thể cung cấp chuỗi có filepath đầy đủ cho tệp như trên, cách dễ nhất để tạo liên kết khi được nhấp, tải xuống tài liệu là gì?
Lưu ý: Tôi có 0 quyền quản trị trong môi trường này. Điều đó thực sự không giúp tôi. Giả sử tôi được cung cấp liên kết chính xác như trên và có quyền truy cập tệp thích hợp và như vậy.
UPDATE:
Ví dụ trên làm việc trong IE, nhưng không phải trong Firefox và Chrome. IE chuyển đổi nó thành một tập tin: // servername/... liên kết mà nó có nghĩa là gì, nhưng FF và Chrome đều tích cực quyết định rằng điều này là không an toàn và đã vô hiệu hóa nó từ trình duyệt của họ.
Ok tôi đã xử lý làm việc, nhưng nó giữ gving tôi sai sót trong Response.WriteFile. Tôi nhập một chuỗi các hình thức "\\ server \ folder \ file.txt" và tôi nhận được: Không thể ánh xạ đường dẫn '/server/folder/file.txt' Tôi đã thử mọi tệp có thể. Bất kỳ trải nghiệm nào về vấn đề này? – Flater
Bạn có thể vượt qua paramter như file = abc.txt cho liên kết đầu tiên, file = otherfile.txt vv như tôi đã đề cập. Vì vậy, bạn sẽ nhận được tên tập tin động và chuyển chúng vào tập tin ASHX. Bạn cần tệp ASHX để bạn có thể cho phép người dùng tải xuống từ đó (tên miền của bạn) thay vì sử dụng đường dẫn máy chủ không tồn tại ở phía máy khách (nếu nó không nằm trong LAN) – wasimbhalli
Ok bỏ qua bài đăng trước của tôi .Mappath và sau đó nó hoạt động :) vẫn còn một chút mờ về hoàn thiện này, nhưng bạn đã giúp tôi rất nhiều khủng khiếp! Cảm ơn! – Flater