如何在 API 中使用 Plumber 将多个图像上传到子目录?

问题描述

我有一个子目录,其位置为“data/images/”,我需要我的 API 服务将图像上传到该子目录中。我在这里使用 R 和 Plumber。我了解基本设置,但我似乎无法让我的代码将我上传文件传送到我的目录中。

这是我的尝试:

图书馆(水管工) 图书馆(车)

#* Upload file
#* @param req:[file]
#* @post /uploadfile
function(req,res){
  
  names(req) 

  print(names(req))

  fileInfo <- list(formContents = Rook::Multipart$parse(req))

  print(fileInfo)

  ## The file is downloaded in a temporary folder
  tmpfile <- fileInfo$formContents$upload$tempfile

  ## copy the file to a new folder,with its original name
  fn <- file.path(paste0("data/images/",req,sepp=''))
  file.copy(tmpfile,fn)
  print(fn)



  ## Send a message with the location of the file
  res$body <- paste0("Your file is Now stored in ",fn,"\n")
  res
}

任何帮助将不胜感激。

解决方法

所以在一堆拉毛之后,这本质上就是让你上传图片到指定子目录的代码。此代码需要管道工和 Rook 包才能工作:

library(plumber)
library(Rook)

#* @param req:[file]
#* @post /upload_test27

function(req,res) {

  # Required for multiple file uploads
  names(req)

  # Parses into a Rook multipart file type;needed for API conversions
  fileInfo <- list(formContents = Rook::Multipart$parse(req))

  # This is where the file name is stored
  # print(fileInfo$formContents$req$filename)
  file_name <- fileInfo$formContents$req$filename

  # The file is downloaded in a temporary folder
  tmpfile <- fileInfo$formContents$req$tempfile



  # Create a file path
  fn <- (paste0("data/images/",file_name,sepp=''))


  #Copies the file into the designated folder
  file.copy(tmpfile,fn)


  res$body <- paste0("Your file is now stored in ",fn,"\n")
  res



}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...