ruby on rails爬坑(三):图片上传及显示

一,问题及思路

最近在用rails + react + mysql基本框架写一个cms + client的项目,里面涉及到了图片的上传及显示,下面简单说说思路,至于这个项目的配置部署,应该会在寒假结束总结分享一下。

rails中图片上传及显示要解决主要问题是:

  • 图片存在哪?
  • 图片格式大小?
  • 客户端怎么显示图片?

因为这是个小项目,估计最多1000张图片,最多占用空间1G,所以采取相对简便的方法:图片保存在rails的public文件夹里(也就是保存在部署该项目的主机中),如果图片比较多的话,还是推荐用亚马逊云提供的服务AWS S3(理解为一个硬盘,S3提供了接口给你存取东西,安全,管理方便)。

大概的思路是,前端通过<input type="file"/>选择文件,发送ajax请求到后端的controller,controller将请求的图片数据进行大小裁剪、类型转换后保存到本地指定的文件夹,同时将路径返回,用于显示图片。

二,实践

思路比较简单,所以话不多说,直接上代码:

前端代码整合在react写的一个图片上传组件里,image_uploader.js.jsx代码如下
var ImageUploader = React.createClass({
  getInitialState: function() {
   
    return {
      url: this.props.url
    };
  },
  onFileSelect: function(e) {
   
    var that = this;
    var files = e.target.files;
    if (files.length <= 0) {
      AlertModal.showWithProps("No file selected");
      return;
    }
    var data = new FormData();
    $.each(files, function(key, value) {
   
      data.append('file', value);
      data.append('type', that.props.type)
    });
    this.upload(data);
  },
  upload: function(data) {
   
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值