如何发送大图像或其base64字符串,使用ajax
How to send large image or its base64 string, using ajax?
我有一个jpeg图像的文件输入。它在更改时生成base64字符串并将其放入其他不可见的文本输入中。然后我按下按钮,字符串被发送到服务器使用ajax POST。
它可以很好地处理300-400kb以下的图片,但是当我尝试上传500kb以上大小的大图像时,base64字符串限制为524288个字符。
<input type="file" id="imgUp" accept=".jpg" display: none;">
<input type="text" id="imgTempUrl"/>
<script type="text/javascript">
$(function(){
//When new file/image is loaded, update temporary input with new base64 string
$('#imgUp').change(function(){
imgUp = document.getElementById('imgUp');
if(imgUp.files && imgUp.files[0]){
var reader = new FileReader();
reader.onload = function(e){
$('#imgTempUrl').val(e.target.result);
};
reader.readAsDataURL(imgUp.files[0]);
}
});
});
</script>
我的问题是:是否有一种方法可以在转换为base64字符串之前删除输入字符的限制或压缩/调整图像的大小?
提前感谢!
我找到了简单的解决方案:我使用隐藏图像而不是文本输入,然后使用它的"src"属性作为我的base64字符串:它不受限制,适用于非常大的文件。
<input type="file" id="imgUp" accept=".jpg">
<img src="" id="imgTempUrl" style="" display: none;">
<script type="text/javascript">
$(function(){
//When new file/image is loaded, update temporary input with new base64 string
$('#imgUp').change(function(){
imgUp = document.getElementById('imgUp');
if(imgUp.files && imgUp.files[0]){
var reader = new FileReader();
reader.onload = function(e){
$('#imgTempUrl').attr("src",e.target.result);
};
reader.readAsDataURL(imgUp.files[0]);
}
});
});
</script>
相关文章:
- 对字符串使用IndexOf来挑选某些单词
- jQuery字符串使用split()方法在空格后拆分字符串
- 如何在javascript中对以下字符串使用string.split()
- 对字符串使用单引号或双引号
- Javascript:我怎么能强迫一个有十进制值的字符串使用点而不是逗号呢
- base64字符串使用Node.JS被写为无效图像
- 撇号标记在javascript字符串中与Backslash一起发送,该字符串使用ajax作为json对象的一部分发送到p
- Javascript 字符串使用 regExp 和 replacer 函数替换
- Javascript 字符串使用正则表达式替换
- 具有 ID 和名称的 JSON 字符串?使用 C 夏普
- 两个限制之间的子字符串使用 jQuery
- 如何使用 Cropper 检索 toDataURL 字符串 使用 Cropper 由 Fengyuanchen.
- 从文本字符串使用 javascript 创建数组并操作数据以满足您的需求
- 对包含 json 的字符串使用 ng-repeat
- URL查询字符串使用多个下拉列表选择(理想的PHP?)
- Canvas作为字符串使用最大压缩
- 如何编辑或替换xml字符串使用php
- 在javascript中对字符串使用除法运算符(/)
- 如何设置不可见的假只有一个字符的字符串使用js或JQuery
- 如何删除URL编码在我的查询字符串使用Javascript