javascript - 如何从输入文件设置背景图像?

标签 javascript reactjs

我希望从输入本地文件设置背景图像。

但出现“net::ERR_UNKNOWN_URL_SCHEME”错误消息。

我的输入标签:

<input
  accept="image/*"
  className="input_img"
  type="file"
  onChange={e => this.uploadImage(e)}
/>

我的uploadImage函数:

uploadImage = e => {
   let node = document.getElementById("result");

   node.style.backgroundImage = "url(" + e.target.result + ")";
};

我该怎么做?

最佳答案

您可以使用 FileReader读取文件的数据,然后使用结果设置 backgroundImage

示例

class App extends Component {
  uploadImage = (e) => {
    const { files } = e.target;
    if (files.length === 0) {
      return;
    }

    const file = files[0];
    const fileReader = new FileReader();

    fileReader.onload = () => {
      this.background.style.backgroundImage = `url(${fileReader.result})`;
    };
    fileReader.readAsDataURL(file);
  };

  render() {
    return (
      <div>
        <input
          accept="image/*"
          className="input_img"
          type="file"
          onChange={this.uploadImage}
        />
        <div
          style={{width: 200, height: 200}}
          ref={ref => this.background = ref}
        ></div>
      </div>
    );
  }
}

关于javascript - 如何从输入文件设置背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51010913/

相关文章:

javascript - 跨文件合并的 TypeScript 命名空间

javascript - 在 jquery 的可拖动辅助函数中实例化 React 组件

javascript - Redux 表单 : MapStateToProps is breaking form

javascript - 如何在 react js redux 中添加刷新 token 功能

javascript - 如何在React JS中获取文件的文件长度

reactjs - 位置为 : relative? 的 TransitionGroup/CSSTransition

javascript - 检查是否为 umlaute 的 keydown 事件

javascript - 如何确保 React 钩子(Hook)中的状态不陈旧

javascript - DataTables 不显示 JSON 数据

javascript - 基于上下文的隐藏