2016-11-07 9 views
1

からアップロードできますか?CloudBlockBlob.UploadFromStreamAsyncに画像のURLを受け入れることはできますか? LinkedInのbasicprofile APIを使用して、ユーザーの画像URL(既にURLを持っています)を取得しようとしています。自分のコンピュータから画像を選択したようにAzure BLOBに画像をダウンロードしてアップロードしようとしています。画像をAzure BlobストレージにURL

これは、それがどのように見えるかで、今のような:

using (Html.BeginForm("UploadPhoto", "Manage", FormMethod.Post, new { enctype = "multipart/form-data" })) 
      { 
       <div class="browseimg"> 
        <input type="file" class="display-none" name="file" id="files" onchange="this.form.submit()" /> 
       </div> 
      } 
      <button class="btn btn-primary width-100p main-bg round-border-bot" id="falseFiles"> 
       Upload billede 
      </button> 

コントローラでの方法:

public async Task<ActionResult> UploadPhoto(HttpPostedFileBase file) 
     { 

      if (file != null && file.ContentLength > 0) 
      { 
       var fileExt = Path.GetExtension(file.FileName); 
       if (fileExt.ToLower().EndsWith(".png") || fileExt.ToLower().EndsWith(".jpg") || 
        fileExt.ToLower().EndsWith(".gif")) 
       { 
        var user = await GetCurrentUserAsync(); 
        await service.Upload(user.Id, file.InputStream); 
       } 
      } 
      return RedirectToAction("Index"); 
     } 
+0

いいえ、できませんが、私は、フォーム内のファイルでないURLをアップロードしている見たものから、手動で画像をダウンロードするのですか? – SilentTremor

+0

あなたのPCから選択したファイルをアップロードしてアップロードする方法です。どういうわけか、それは可能でなければなりません。 URLを読み込んでストリームや何かをアップロードすることで、ストリームに入れようとしています – crystyxn

+0

私はそれを行うために簡単なものを作成しています – SilentTremor

答えて

0

は、私は必要なすべてのように見えるシンプル

WebClient wc = new WebClient(); 
MemoryStream stream = new MemoryStream(wc.DownloadData("https://media.licdn.com/mpr/...")); 

、その後

ました
await service.Upload(user.Id, stream); 
メソッドのアップロードファイル(URL)以下
2

は紺碧する

NOTE cloudblob:この方法の例

ファイル= "http://example.com/abc.jpg" とimagenameのは= "MYIMAGEの入力.jpg ";

public static void UploadImage_URL(string file, string ImageName) 
     { 
      string accountname = "<YOUR_ACCOUNT_NAME>"; 

      string accesskey = "<YOUR_ACCESS_KEY>"; 

      try 
      { 

       StorageCredentials creden = new StorageCredentials(accountname, accesskey); 

       CloudStorageAccount acc = new CloudStorageAccount(creden, useHttps: true); 

       CloudBlobClient client = acc.CreateCloudBlobClient(); 

       CloudBlobContainer cont = client.GetContainerReference("<YOUR_CONTAINER_NAME>"); 

       cont.CreateIfNotExists(); 

       cont.SetPermissions(new BlobContainerPermissions 
       { 
        PublicAccess = BlobContainerPublicAccessType.Blob 

       }); 
       HttpWebRequest request = (HttpWebRequest)WebRequest.Create(file); 
       HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
       Stream inputStream = response.GetResponseStream(); 
       CloudBlockBlob cblob = cont.GetBlockBlobReference(ImageName); 
       cblob.UploadFromStream(inputStream); 
      } 
      catch (Exception ex) 
      { 

      } 

     } 
+0

あなたの答えをありがとうSupraj :) – crystyxn

関連する問題