栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python CGI编程中上传文件报500的问题,及““与“ /“的区别。

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python CGI编程中上传文件报500的问题,及““与“ /“的区别。

以下为runoob.com中提供的程序:





菜鸟教程(runoob.com)


 

选中文件:

#!/usr/bin/python3

import cgi, os
import cgitb; cgitb.enable()

form = cgi.FieldStorage()

# 获取文件名
fileitem = form['filename']

# 检测文件是否上传
if fileitem.filename:
   # 设置文件路径
   fn = os.path.basename(fileitem.filename)
   open('/tmp/' + fn, 'wb').write(fileitem.file.read())

   message = '文件 "' + fn + '" 上传成功'
   
else:
   message = '文件没有上传'
   
print ("""
Content-Type: text/htmln



菜鸟教程(runoob.com)


   

%s

""" % (message,))

经过检查,error.log错误提示,

 及论坛释疑,应是/tmp/目录不存在导致,

 更改此处地址,程序运行成功。

#!D:Python310python.exe
#-*- coding: utf8 -*-

import cgi, os
import cgitb; cgitb.enable()

import codecs, sys
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach())#不加会乱码

form = cgi.FieldStorage()

# 获取文件名
fileitem = form['filename']

# 检测文件是否上传
if fileitem.filename:
   # 设置文件路径
   fn = os.path.basename(fileitem.filename)
   open('D:/Apache24/cgi-bin/tmp/' + fn, 'wb').write(fileitem.file.read())

   message = '文件 "' + fn + '" 上传成功'

else:
   message = '文件没有上传'

print ("""
Content-Type: text/htmln



菜鸟教程(runoob.com)


   

%s

""" % (message,))

注意,tmp后面的/不能漏,否则上传的文件名会被修改为tpm+"文件名“。

 不要直接从资源管理器上直接复制地址,如:

D:Apache24cgi-bintmp

此处为" ",程序会报错,需改为" / "。经查,这二者的区别为前者为本地地址,后者为外部地址,因是调用apache上执行此程序,可能程序认为这个地址是一个外部地址吧。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/846554.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号