r - 如何在 API 中使用 Plumber 将多个图像上传到子目录?
问题描述
我有一个位置为“data/images/”的子目录,我需要我的 API 服务将图像上传到该子目录。我在这里使用 R 和 Plumber。我了解基本设置,但我似乎无法让我的代码将我上传的文件传送到我的目录中。
这是我的尝试:
图书馆(水管工) 图书馆(Rook)
#* 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
}
推荐阅读
- python - 使用集合中的值命名递归创建的数据框
- javascript - keydown 上的滚动事件,如向下箭头和向上箭头
- node.js - 为什么当 node_modules 包含在卷中时找不到任何开发库?
- delphi - Delphi RIO 更改旧的 _TLB.pas 参数数据类型定义
- python - 如何根据sqlite中的条件计算不同的值?
- ios - VoiceOver 在 UITableView 中滚动,其中单元格和子视图都是可访问性元素
- vb.net - 按下外部窗口(另一个应用程序)上的按钮
- python - 我的 Django 网站正在加载我的静态 (CSS) 文件,但它们没有显示出来。我错过了什么或做错了什么?
- javascript - 浏览器端转换 SVG -> PNG 的问题
- c - 如何忽略 Lex 中的字符?