如何从运行Windows 8.1 metro应用程序的平板电脑上传图像?

时间:2014-09-18 21:17:21

标签: microsoft-metro winrt-xaml

我需要将图像上传到服务器,请少于20行代码。而且没有关于服务的问题。我的老板希望它像过去的ftp一样工作......

1 个答案:

答案 0 :(得分:1)

我不认为你的问题有20行解决方案。

但请查看此链接:

http://code.msdn.microsoft.com/Windows-8-SocketsFtp-4fc23b33#content

它包含一个适用于Windows 8.1 metro应用程序的完整Ftp客户端。

您可以将此项目用作您自己项目中的库。

如果你特别需要上传文件,我认为你需要在FtpClient类中使用 UploadFileAsync 函数

public async Task UploadFileAsync(StorageFile file, string destination) 
    { 
        using (var stream = await OpenWriteAsync(destination)) 
        { 
            // 
            // A more efficient way, maybe a DataReader can be used here 
            using (var readStream = await file.OpenReadAsync()) 
            { 
                var buffer = new byte[512].AsBuffer(); 
                var resultingBuffer = new byte[0]; 

                while (true) 
                { 
                    IBuffer readBuffer = await readStream.ReadAsync(buffer, 512, InputStreamOptions.Partial); 

                    if (readBuffer.Length == 0) break; 

                    resultingBuffer = resultingBuffer.Concat(readBuffer.ToArray()).ToArray(); 
                } 

                await stream.WriteAsync(resultingBuffer.AsBuffer()); 
                await stream.FlushAsync(); 
            } 
        } 
    }