我正在使用web2py框架。 我已经通过SQLFORM上传了一个文件,文件存储在“上传文件夹”中,现在我需要从控制器读取这个txt文件,我应该在default.py中定义的函数中使用什么文件路径?
if (response.IsSuccessStatusCode)
{
data = response.Content.ReadAsAsync<Restaurant>().Result;
Session["RestInfo"] = data;
Response.Redirect("SearchResult.aspx");
}
答案 0 :(得分:0)
您可以加入应用程序目录和上传文件夹来构建文件路径。 做这样的事情:
import os
filepath = os.path.join(request.folder, 'uploads', uploaded_file_name)
file = open(filepath, "rb")
request.folder :应用程序目录。例如,如果 应用程序是#34; welcome&#34;,
request.folder
设置为绝对路径 &#34;/path/to/welcome
&#34 ;.在您的程序中,您应该始终使用它 变量和os.path.join
函数来构建文件的路径 需要访问。
答案 1 :(得分:0)
上传文件的转换后名称存储在数据库表的上传字段中,因此您需要一种方法来查询通过SQLFORM
提交插入的特定记录,以获取其名称。存储的文件。假设您知道记录ID,它的外观如下:
stored_filename = db.mytable(record_id).my_upload_field
original_filename, stream = db.mytable.my_upload_field.retrieve(stored_filename)
stream.read()
当您将文件名传递给上传字段的.retrieve
方法时,它将返回一个元组,其中包含原始文件名以及打开的文件对象(在上面的代码中称为stream
)。