我正在Windows Phone 7上构建应用程序,以便在wifi上传输照片。
冷杉用户选择照片(工作正常)&我将路径存储在我以后可以使用的变量中。
当我尝试发送照片时,我的流上的空白如下所示: 具体来说,当进度条发生变化时,我会启动下一次照片传输,因此线程不会并发。
public transferPage()
{
InitializeComponent();
// Get smartphone unique ID
object DeviceUniqueID;
byte[] DeviceIDbyte = null;
if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out DeviceUniqueID))
DeviceIDbyte = (byte[])DeviceUniqueID;
deviceId = Convert.ToBase64String(DeviceIDbyte);
nbPhotos = photoContainer.photosUri.Count;
photoContainer.index = 0;
index = 0;
transferPhoto();
}
private void ProgressBarValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Thread.Sleep(3000);
if (photoContainer.photosUri.Count > 0)
transferPhoto();
}
private void transferPhoto()
{
string url = String.Format(photoContainer.urlTransfer, nbPhotos, deviceId);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);
}
private void GetRequestStreamCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
// End the stream request operation
Stream postStream = webRequest.EndGetRequestStream(asynchronousResult);
var fs = Application.GetResourceStream(new Uri(photoContainer.photosUri[0], UriKind.RelativeOrAbsolute)).Stream;
A是最后一行引发的Null异常。它永远不会在第一个文件中引发,有时是第二个文件,而第三个文件也是第photoContainer.photosUri [0]仍然是我在调试器中确认的好文件路径。
答案 0 :(得分:0)
我很困惑。如果您正在上传图片,为什么使用Application.GetResourceStream?该方法仅访问应用程序XAP中嵌入的资源。您不应该使用MediaLibrary.Pictures来访问手机上的图片吗?
无论哪种方式,当给定未知资源标识符时,Application.GetResourceStream都返回null。花一些时间熟悉Silverlight的相对Uris,它们与文件构建操作的关系以及如何正确地表达它们。对于嵌入式资源,相对Uri是“/assemblyName; component/folderInProject/fileName.fileExtension”,对于“Build Action = Content”文件,它将是“folerInProject / fileName.fileExtension”。