上传图片而不回发

时间:2014-04-02 10:20:53

标签: jquery asp.net upload postback

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

第二个问题:我们不能将简单的方法称为静态。在静态中调用其他方法的任何技巧?

1 个答案:

答案 0 :(得分: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 Part:

<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);
}

变量&#39; getImageData&#39;是您的图片,您可以将其直接发送到您的“存储过程”