1 namespace Uploader
2 {
3 using System;
4 using System.IO;
5 using System.ServiceModel;
6 using System.ServiceModel.Description;
7 using System.ServiceModel.Web;
8 using System.Drawing;
9 using System.Drawing.Imaging;
10 using System.Net;
11 using System.Xml;
12
13 [ServiceContract(Namespace = "http://Uploader")]
14 public interface IUploaderService
15 {
16 [OperationContract, WebInvoke(Method = "POST",UriTemplate = "File/{fileName}")]
17 bool UploadFile(string fileName, Stream fileContents);
18 }
19
20 [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
21 public class UploaderService : IUploaderService
22 {
23 public bool UploadFile(string fileName, Stream fileContents)
24 {
25 return true;
26 }
27 }
28
29 class Program
30 {
31 static void Main()
32 {
33 var host = new
34 ServiceHost(typeof (UploaderService),
35 new Uri("http://localhost:8080/Uploader"));
36 host.AddServiceEndpoint("Uploader.IUploaderService",
37 new WebHttpBinding(), "").Behaviors.Add(new WebHttpBehavior());
38 try
39 {
40 host.Open();
41 Console.WriteLine(host.BaseAddresses[0].AbsoluteUri + " running.");
42 Console.WriteLine();
43 var uri = "http://localhost:8080/Uploader/file.jpg";
44 var req = WebRequest.Create(uri) as HttpWebRequest;
45 if (req != null)
46 {
47 req.Method = "POST";
48 req.ContentType = "image/jpeg";
49 var reqStream = req.GetRequestStream();
50
51 var imageStream = new MemoryStream();
52 using (var i = Image.FromFile(@"c:\photo.jpg"))
53 i.Save(imageStream, ImageFormat.Jpeg);
54
55 var imageArray = imageStream.ToArray();
56 reqStream.Write(imageArray, 0, imageArray.Length);
57 reqStream.Close();
58 var resp = (HttpWebResponse)req.GetResponse();
59 var r = new XmlTextReader(resp.GetResponseStream());
60 if (r.Read())
61 {
62 Console.WriteLine(r.ReadString());
63 }
64 }
65 Console.WriteLine("Press <ENTER> to quit.");
66 Console.ReadLine();
67 }
68 catch (Exception ex)
69 {
70 Console.WriteLine(ex.Message);
71 Console.ReadKey();
72 }
73 finally
74 {
75 if (host.State == CommunicationState.Faulted)
76 host.Abort();
77 else
78 host.Close();
79 }
80 }
81 }
82 }
83
84
हाय, आशा है कि आप मदद कर सकते हैं ....RESTful WCF सेवा छवि अपलोड समस्या
मैं एक सरल अनुप्रयोग (शायद वेबपेज) है कि एक साधारण यूआई होगा और एक बाहरी डिवाइस से फ़ाइलें अपलोड करेंगे बनाने हूँ , ऐप/वेबपृष्ठ autorun.inf के माध्यम से शुरू किया जाएगा जब उपयोगकर्ता वहां डिवाइस को पीसी में प्लग करता है। Webservice फ़ाइल को प्रबंधन प्रणाली आदि से जोड़ने का जटिल काम करेगा। यह आईटी अशिक्षित उपयोगकर्ताओं को सक्षम करेगा जो प्रबंधन प्रणाली में फाइल सबमिट करने के लिए फ़ाइल एक्सप्लोर का उपयोग नहीं कर सकते हैं ...!
समस्या मुझे लगता है कि मेरी RESTful serivce मुझे एक 400 त्रुटि दे रहा है जब सामग्री प्रकार एक image/jpeg है .. यह के लिए पाठ/सादा या text/xml ठीक काम करता है (ब्लॉग पोस्ट देखें)
हैधन्यवाद जे
बस मैं क्या कर रहा था! अभी तक वेबपृष्ठ अपलोड के बारे में निश्चित नहीं है, हालांकि मैं सेवा में शामिल होने के लिए जावास्क्रिप्ट का उपयोग कर सकता हूं, इसलिए मुझे JSON सक्षम संस्करण भी बनाना होगा। उस पुल को क्रॉस करें जब मैं इसे प्राप्त करूं। ऐप मो में एक छोटा सा प्रोटोटाइप है। – jaimie
मैं वास्तव में इस रीस्टफुल डब्लूसीएफ को पसंद कर रहा हूं, यह इंटरऑपरेबिलिटी के लिए मानक एसओएपी डब्ल्यूएस- * मानकों की तुलना में इतना साफ और पतला लगता है। एमएसडीएन पर एक महान श्वेत पत्र है: http://msdn.microsoft.com/en-us/library/dd203052.aspx जो भी अधिक जानना चाहता है। आपकी मदद के लिए धन्यवाद बेन ... जे – jaimie