2017-03-01 4 views
1

私はaspxページでイメージとボタンサーバーコントロールを持っています。イメージがクライアント側でjqueryによって設定されているaspイメージコントロールのImageUrlを取得するにはどうすればよいですか?

<asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Upload" /> 
<asp:Image ID="impPrev" runat="server" Height="200px" /> 
<input type="file" name="ImageUpload" id="ImageUpload" onchange="ShowPreview(this)" /> 

また、私はurlを取得しようとしていた場合、私は

function ShowPreview(FileUpload1) { 
    if (FileUpload1.files && FileUpload1.files[0]) { 
     var file = FileUpload1.files[0]; 
     var ImageDir = new FileReader(); 
     if (file) { 
     ImageDir.readAsDataURL(file); 
     } 
     ImageDir.addEventListener('load', function() { 
     $('#impPrev').attr('src', ImageDir.result); 
     }); 
    } 
} 

ようにjQueryを使用して、クライアント側からのASPイメージコントロールのIMAGEURLを変更することができていた使用してHTMLファイルタイプの入力コントロールを持っていますコードの後ろから新しく設定された画像のように

protected void btnUpload_Click(object sender, EventArgs e) { 
    var path = impPrev.ImageUrl; 
} 

空の文字列が「パス」に返されています。 jqueryで設定したイメージの実際のパスを取得するにはどうすればよいですか?

答えて

1

フォームがサーバーに到達する情報のポストバックではないため、サーバー側に値を取得できないと思います。さらに、サーバー側からURLパスを取得するために、サーバー内のどこにもイメージは格納されません。しかし、隠しフィールドを使用し、そのフィールドに必要な値を設定することで、名前、クライアントパスなどのImage属性を取得できます。

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Upload" /> 
     <asp:Image ID="impPrev" runat="server" Height="200px" /> 
     <input type="file" name="ImageUpload" id="ImageUpload" onchange="ShowPreview(this)" /> 
     ** <input type="hidden" runat="server" id="myhid" />** 
    </div> 
    </form> 
</body> 
</html> 

function ShowPreview(FileUpload1) { 
    if (FileUpload1.files && FileUpload1.files[0]) { 
     var file = FileUpload1.files[0]; 
     var ImageDir = new FileReader(); 
     if (file) { 
      ImageDir.readAsDataURL(file); 
     } 
     ImageDir.addEventListener('load', function() { 
     $('#impPrev').attr('src', ImageDir.result); 
     $('#myhid').val(file.name); 
     }); 
    } 
} 

protected void btnUpload_Click(object sender, EventArgs e) 
     { 
      //var path = impPrev.ImageUrl; 
      var test = myhid.Value; 
     } 
関連する問題