设置SRC值(iOS)后图像被截断

设置SRC值(iOS)后图像被截断,ios,safari,webkit,Ios,Safari,Webkit,我在iOS/Safari/Chrome上遇到了一个奇怪的限制。 用户可以选择一个图像,然后将其文件内容粘贴到输入元素中 两者的长度不相等。这是iOS限制吗 L.users.importConfigurations = function(options) { var target = null; this._getInputFileElement = function() { var that = this; fileInput = $('<input ty

我在iOS/Safari/Chrome上遇到了一个奇怪的限制。 用户可以选择一个图像,然后将其文件内容粘贴到输入元素中

两者的长度不相等。这是iOS限制吗

    L.users.importConfigurations = function(options) {
  var target = null;

  this._getInputFileElement = function() {
    var that = this;
    fileInput = $('<input type="file" accept="image/*" style="display:none;" capture="camera" />');
    fileInput.change(function() {
      that._handleFiles(fileInput);
    });
    return fileInput;
  };

  this.showFileSelectionDialog = function() {
    var fileInput = this._getInputFileElement();
    fileInput.click();
  };

  this._handleFiles = function(fileInput) {
    var files = fileInput[0].files;
    if (files && files.length) this._readFile(files[0]);
  };

  this._readFile = function(fileInfo) {
    var that = this;
    var reader = new FileReader();
    reader.onload = function(e) {
      that._uploadFile(e.target.result);
    };
    reader.readAsDataURL(fileInfo);
  };

  this._uploadFile = function(fileData) {
    var fbValue = $(options.target).closest('.fileboxframe').find(".fileboxvalue");
    if (fbValue && fbValue.length > 0) {
      alert("Length before: " + fileData.length.toString());
      fbValue.attr('src', fileData);
      alert("Length after (Should be same): " + fileData.length.toString());
      alert("Length after (Should be same): " + fbValue.attr("src").length.toString());
    }
  };

  this.showFileSelectionDialog();
};

https://jsfiddle.net/ChristophWeigert/81qu41L5/
L.users.importConfiguration=函数(选项){
var目标=null;
这是。_getInputFileElement=函数(){
var=这个;
fileInput=$('');
fileInput.change(函数(){
即._handleFiles(fileInput);
});
返回文件输入;
};
this.showFileSelectionDialog=函数(){
var fileInput=this.\u getInputFileElement();
fileInput.click();
};
此._handleFiles=函数(fileInput){
var files=fileInput[0]。文件;
如果(files&&files.length)这个.u readFile(files[0]);
};
此._readFile=函数(fileInfo){
var=这个;
var reader=new FileReader();
reader.onload=函数(e){
上传文件(e.target.result);
};
reader.readAsDataURL(fileInfo);
};
此._uploadFile=函数(fileData){
var fbValue=$(options.target).closest('.fileboxframe').find(.fileboxvalue”);
如果(fbValue&&fbValue.length>0){
警报(“长度在:+fileData.Length.toString()之前”);
fbValue.attr('src',fileData);
警报(“后面的长度(应相同):”+fileData.Length.toString());
警报(“之后的长度(应相同):”+fbValue.attr(“src”).Length.toString());
}
};
这个.showFileSelectionDialog();
};
https://jsfiddle.net/ChristophWeigert/81qu41L5/

我在这个主题中找到了答案:

解决方案是使用textare而不是textbox