Ruby中的图像上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby中的图像上传相关的知识,希望对你有一定的参考价值。

Checks to make sure the file is a valid image file, checks max file size, and directory write permissions, requires 'fileutils' gem.
  1. def do_image_upload(theFile)
  2. # You should reall set these two in a config.
  3. maxFilesize = 10485760
  4. fileDir = "public/files"
  5.  
  6. fileName = Time.now.to_i.to_s + '-' + rand(36**8).to_s(36) + File.extname(theFile[:filename])
  7. filePath = File.join(fileDir, fileName)
  8.  
  9. tempFile = theFile[:tempfile]
  10.  
  11. upload = {
  12. :fileSize => tempFile.size,
  13. :originalFileName => theFile[:filename],
  14. :fileType => theFile[:type],
  15. :fileName => fileName,
  16. :filePath => filePath
  17. }
  18.  
  19. if upload[:fileType] != 'image/png' && upload[:fileType] != 'image/jpeg' && upload[:fileType] != 'image/gif'
  20. return {'fileError' => 'FileType not allowed.'}
  21. end
  22. if upload[:fileSize] > maxFileSize
  23. return {'fileError' => 'FileSize too large.'}
  24. end
  25.  
  26. if !File.directory?(fileDir)
  27. return {'fileError' => 'Destination ' + directory + ' does not exist.'}
  28. end
  29.  
  30. if !File.writable?(fileDir)
  31. return {'fileError' => 'Cannot write to ' + directory + '.'}
  32. end
  33.  
  34. File.open(filePath, "wb") { |f| f.write(tempFile.read) }
  35.  
  36. return upload
  37. end

以上是关于Ruby中的图像上传的主要内容,如果未能解决你的问题,请参考以下文章

使用 cloudinary 直接上传 - “没有这样的文件或目录”错误,可能是我的 ruby​​ on rails 代码中的某个错误

Ruby on Rails 中的基本图像大小调整

如何使用 Ruby 作为后端将 React 上的图像上传到 Google Cloud Storage

使用 rest-client 文件上传在 Yandex 上进行 Ruby 反向图像搜索

来自GrayScale的Ruby + RMagick + base64图像+ RGB转换不起作用

如何从Android片段中的相机获取图像