2014-04-02 77 views
0

我上传图像到imgur.com使用API​​上的按钮点击,但我想避免页面刷新按钮点击,我试图禁用onClick到假和手动通过jquery调用函数,但不幸的是我无法运行,有没有其他方法可以上传而不用回传?上传图像没有回传

第二个问题:我们不能简单地调用静态方法。任何技巧来调用静态的其他方法?

+0

你可以在HTML 5或iframe实现使用FileAPI,以避免回发 –

+0

有jQuery插件,如http ://malsup.com/jquery/form/ – kpull1

回答

2

我认为这将有助于你:

这里是上传名为.jpg文件

代码

脚本代码:

<script src="JS/jquery-2.1.0.js"></script> 
<script type="text/javascript"> 
    function SaveAllDetails() { 
     if (document.getElementById("FileUploadMyImage").value != "") { 
      var file = document.getElementById('FileUploadMyImage').files[0]; 
      var reader = new FileReader(); 
      reader.readAsDataURL(file); 
      reader.onload = UpdateFiles; 
     } 
     else { 
      alert('Please Choose An Image'); 
     } 
    } 

    function UpdateFiles(evt) { 
     var result = evt.target.result; 
     var ImageSave = result.replace("data:image/jpeg;base64,", ""); 
     var savobject = { 'savingvalues': ImageSave }; 
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: "Default.aspx/SaveAllDetails", 
      data: JSON.stringify(savobject), 
      dataType: "json", 
      success: function() { 
       alert('SuccessFully Uploaded'); 
      }, 
      error: function() { 
       alert('Not Uploaded'); 
      } 
     }); 
    } 
</script> 

HTML部分:

<div> 
<input type="file" id="FileUploadMyImage" /> 
    <input type="button" value="Submit" onclick="SaveAllDetails();" /> 
</div> 

您的asp.net表单后面的代码:

[WebMethod(EnableSession = true)] 
public static void SaveAllDetails(string savingvalues) 
{ 
    byte[] getImageData = Convert.FromBase64String(savingvalues); 
} 

变量“getImageData”是你的形象,你可以直接发送到您的“存储过程”

+0

这是不会Updatefile(EVT)我写了警报命令,并检查它显示读取器数据,但不是savobject对象 – CoRRoDED34

+0

首先,你应该确保你已经添加了最新的jquery版本,然后用脚本检查Fileupload控件的id:ie:** document.getElementById(“FileUploadMyImage”)**和** * * –

+0

是啊!我已经验证了这一点,并在按钮,它显示onClick错误,所以我用onClientClick ..这是否导致问题?因为onClick在代码页显示该行错误 – CoRRoDED34