react 上传头像

import React from 'react';
import axios from 'axios'
export default class My extends React.Component{
                     constructor(props){
                           super(props);
                           this.state={
                                imgurl:''
                           }
                     }
                     
                     componentDidMount(){
                           
                     }
                     load(){
                           this.refs.loading.style.display="block"
                           let file=this.refs.file
                           console.log(file.files[0])
                           let forData=new FormData
                           forData.append('headfile',file.files[0])
                           var url="http://vueshop.glbuys.com/api/user/myinfo/formdatahead?token=1ec949a15fb709370f"
                           axios({
                                method:"post",
                                url:url,
                                data:forData
                           }).then(res=>{
                           this.refs.loading.style.display="none"
                                
                                console.log(res.data)
                                if(res.data.code==200)
                                {
                                     let temp="//vueshop.glbuys.com/userfiles/head/"
                                     this.setState({
                                           imgurl:temp+res.data.data.msbox
                                     })
                                }
                           })
                     }
                     
                     
                     
                     //jsx
                     render(){
                           return(
                                <div className="zong">
                                     <div className="loading" ref="loading">上传中....</div>
                                     <input type="file" ref="file" onChange={this.load.bind(this)}/>
                                     <img src={this.state.imgurl}/>
                                </div>
                                
                           )
                
                 }
                
                
                     
                }
     
     
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您使用React编写前端页面,并且需要上传图片并压缩,可以使用以下步骤: 1. 安装用于图片压缩的库,如`compressorjs`或`react-image-file-resizer`。 2. 创建一个组件来上传图片,可以使用`<input type="file">`元素。 3. 当用户选择图片时,可以将其读入内存并压缩。 4. 压缩完毕后,将压缩后的图像作为文件上传。 以下是一个简单的示例代码: ```javascript import React, { useState } from 'react'; import Compressor from 'compressorjs'; const UploadImage = () => { const [file, setFile] = useState(null); const handleFileChange = (event) => { const imageFile = event.target.files[0]; new Compressor(imageFile, { quality: 0.6, success(result) { setFile(result); }, error(err) { console.log(err.message); }, }); }; const handleUpload = () => { // 将压缩后的图像作为文件上传 const formData = new FormData(); formData.append('image', file); // 发送formData到服务器 }; return ( <div> <input type="file" onChange={handleFileChange} /> <button onClick={handleUpload}>上传图片</button> </div> ); }; export default UploadImage; ``` 在这个示例中,我们使用`compressorjs`库来压缩图像。`handleFileChange`函数会在用户选择图片后调用,将图片读入内存并压缩,然后将压缩后的图像设置为组件状态的`file`属性。 `handleUpload`函数在用户点击“上传图片”按钮时调用,将压缩后的图像作为文件上传。您可以将`formData`发送到服务器并在服务器端进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值