C# AsyncFileUpload双上传
我正在尝试使用AsyncFileUpload和按钮上载图像。下面是我用来做这件事的代码。但它不确定如何让它只在点击btnUpload后上传图像。当前的问题是,一旦我在asyncfileupload控件中浏览了我想要的图像,就会有一个loading.gif显示它正在加载,并且我刷新页面,而没有单击BTNUP将已经上载到数据库中的图像加载。我想做的是在点击btnUpload后让图像上传。一定要帮助解决这个问题。谢谢 标记代码:C# AsyncFileUpload双上传,c#,asp.net,ajax,asyncfileupload,C#,Asp.net,Ajax,Asyncfileupload,我正在尝试使用AsyncFileUpload和按钮上载图像。下面是我用来做这件事的代码。但它不确定如何让它只在点击btnUpload后上传图像。当前的问题是,一旦我在asyncfileupload控件中浏览了我想要的图像,就会有一个loading.gif显示它正在加载,并且我刷新页面,而没有单击BTNUP将已经上载到数据库中的图像加载。我想做的是在点击btnUpload后让图像上传。一定要帮助解决这个问题。谢谢 标记代码: <script type="text/javascript" la
<script type="text/javascript" language="javascript">
function StartUpload(sender, args) {
var filename = args.get_fileName();
var path = args.get_path();
if (filename != "") {
// code to get File Extension..
var arr1 = new Array;
arr1 = filename.split("\\");
var len = arr1.length;
var img1 = arr1[len - 1];
var filext = img1.substring(img1.lastIndexOf(".") + 1);
// Checking Extension
if (filext == "jpg" || filext == "JPG") {
$get("<%=lblUpload.ClientID %>").innerHTML = "";
$get("<%=btnUpload.ClientID %>").disabled = false;
return true;
}
else {
$get("<%=lblUpload.ClientID %>").innerHTML = "Only .jpg and .JPG image allowed.";
$get("<%=btnUpload.ClientID %>").setAttribute('disabled', 'disabled');
return false;
}
}
}
我想只要去掉下面的线就可以了
OnUploadedComplete="btnUpload_Click"
请告诉我它是否有效…我认为您没有按照预期的方式使用AyncFileUpload控件。该控件用于在自动选择文件后上载文件。对于“上传”按钮来说,更正确的术语应该是“保存”,因为文件已经存在于服务器上,只需要保存即可 通过调用onPloadedComplete,您实际上是在调用代码来保存文件。发件人: UploadedComplete—文件成功加载时在服务器端激发 上传 正如Alicina建议的,您应该删除此呼叫,因为它似乎是多余的
如果您只希望在单击“上载”按钮后上载文件,则需要调查其他控件。您可能希望查看其他上载控件,如或ASP.net中的标准文件上载控件[尽管我不太确定这对更新面板的效果如何].当您希望用户单击按钮时,为什么还要异步文件上载?如果您希望它是异步的,那么单击按钮并上载完成的事件就是接受上载。不上传抱歉,我没有在updatepanel中添加触发器,这就是它不工作的原因。
protected void btnUpload_Click(object sender, EventArgs e)
{
if (AsyncFileUpload1.HasFile == true)
{
String nric = (String)Session["nric"];
string filePath = AsyncFileUpload1.PostedFile.FileName;
string filename = Path.GetFileName(filePath);
string ext = Path.GetExtension(filename);
string contenttype = String.Empty;
switch (ext)
{
case ".jpg":
contenttype = "image/jpg";
break;
case ".JPG":
contenttype = "image/jpg";
break;
}
if (contenttype != String.Empty)
{
System.Drawing.Image uploaded = System.Drawing.Image.FromStream(AsyncFileUpload1.PostedFile.InputStream);
System.Drawing.Image newImage = new Bitmap(1024, 768);
using (Graphics g = Graphics.FromImage(newImage))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(uploaded, 0, 0, 1024, 768);
}
byte[] results;
using (MemoryStream ms = new MemoryStream())
{
ImageCodecInfo codec = ImageCodecInfo.GetImageEncoders().FirstOrDefault(c => c.FormatID == ImageFormat.Jpeg.Guid);
EncoderParameters jpegParms = new EncoderParameters(1);
jpegParms.Param[0] = new EncoderParameter(Encoder.Quality, 95L);
newImage.Save(ms, codec, jpegParms);
results = ms.ToArray();
}
//insert the file into database
string strQuery = "Update MemberAccount Set profilepicture = @Data Where nric = @Nric";
SqlCommand cmd = new SqlCommand(strQuery);
cmd.Parameters.Add("@Nric", SqlDbType.VarChar).Value = nric;
cmd.Parameters.AddWithValue("@Data", results);
InsertUpdateData(cmd);
UpdatePanel2.Update();
lblUpload.ForeColor = System.Drawing.Color.Green;
lblUpload.Text = "Profile Picture Updated.";
}
}
}
OnUploadedComplete="btnUpload_Click"