我在aspx页面中有一个图像和按钮服务器控件。
<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)" />
我还有一个html文件类型输入控件,使用它我可以使用jquery从
更改客户端的asp图像控件的imageUrlfunction 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);
});
}
}
如果我试图从代码隐藏中获取url
新设置的图像,如
protected void btnUpload_Click(object sender, EventArgs e) {
var path = impPrev.ImageUrl;
}
空字符串正在返回“path”。 如何获得jquery设置的图像的实际路径?
答案 0 :(得分:1)
我相信您无法获得服务器端的价值,因为表单不会回发以获取到达服务器的信息。此外,图像不会存储在服务器中的任何位置以从服务器端获取URL路径。但是您可以使用隐藏字段并将所需值设置为该字段来获取图像属性,例如名称,客户端路径等。
</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;
}