我有一个问题: 我需要从ChicagoBoss的post param中读取文件。我在尝试:
upload_file('POST', []) ->
File = Req:post_param("file"),
{ok,Data} = file:read_file(File),
有错误:
{{badmatch,{error,enoent}}
当我尝试检查文件时:
case filelib:is_file(File) of
true -> {output, "ok"};
false -> {output, "error"}
end.
我有error
输出。
我正在尝试使用Postman上传文件。问题在哪里?
答案 0 :(得分:0)
Req:post_param("file")
内有什么?
您认为它是文件的路径:您是否检查了File
的值?
无论如何,你可能正在寻找Req:post_files/0
:
[{_, _FileName, TempLocation, _Size}|_] = Req:post_files(),
{ok,Data} = file:read_file(TempLocation),
将文件放在它的温度位置也可能是一个坏主意,你最好找一个更适合存放它们的地方。
答案 1 :(得分:0)
enoent
是“找不到目录”的posix错误代码。
http://www.erlang.org/doc/man/file.html#del_dir-1
此外,您的代码允许人们从磁盘读取任意文件。这最终会导致服务器攻击。