2008-09-09 37 views
18

Tôi đã xây dựng một Dịch vụ WCF để chấp nhận một tệp và ghi nó vào đĩa. Giao diện người dùng bao gồm một trang có SWFUpload đang xử lý tải lên ở phía máy khách. Rõ ràng, SWFUpload đăng dữ liệu với Loại nội dung: multipart/form-data.Cách tải tệp lên Dịch vụ WCF?

Tôi nghĩ rằng điều này ok nhưng ở phía Dịch vụ, tôi gặp lỗi. Lỗi là "ProtocolException" mong đợi văn bản/xml. Tôi đã cố gắng mã hóa thông điệp khác nhau trong các ràng buộc nhưng không có gì có vẻ làm việc.

Tôi làm cách nào để tải tệp này lên bằng multipart/form-data?

Trả lời

9

@jdiaz,

@JasonS là đúng, để tải lên tệp bạn cần chuyển nó dưới dạng luồng byte. Bạn cần sử dụng WCF streaming. Ví dụ về cách tải tệp lên qua WCF, hãy xem an article từ http://kjellsj.blogspot.com

+1

Điều này có thực sự hữu ích không? Tôi vẫn không biết cách tải lên từ trình duyệt. Tất cả các giải pháp tôi đã tìm thấy cho đến nay sử dụng .NET client để tải lên WCF. Không phải SWFUpload. – tishma

0

Tôi tin rằng bạn sẽ phải chuyển tệp dưới dạng mảng byte sang WCF. Bạn sẽ cần xử lý bài đăng từ SWFUpload và chuyển đổi thành mảng byte trước khi gửi tới dịch vụ của bạn.

2

Điều bạn muốn sử dụng có lẽ là MTOM, nếu bạn muốn nó là tiêu chuẩn. Sử dụng điều này, bạn có thể có MIME nhân thông điệp.

Sau đó, bạn phải đọc tệp dưới dạng luồng và đưa nội dung đó vào một trong các thông số của yêu cầu.

1

Có thể là mục tiêu dịch vụ WCF của bạn .NET Framework 3.5 và IIS của bạn đang chạy trên .NET Framework 4.0. Trong trường hợp này (khung không phù hợp), bạn cần sửa đổi dịch vụ của mình.

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