新码呔 2020-06-03 10:10 采纳率: 0%
浏览 5
已结题

实现服务器文件共享,怎么写?

service.py文件下


rootdir = r'e:\SVN123\trunk\代码\pyinterface\'


def document(subdir=''):

if subdir == '':

# 名字为空,切换到根目录

os.chdir(rootdir)

else:

fullname = rootdir + os.sep + subdir

# 如果是文件,则下载

if os.path.isfile(fullname):

return redirect(url_for('downloader', fullname=fullname))

# 如果是目录,切换到该目录下面

else:

os.chdir(fullname)

current_dir = os.getcwd()

current_list = os.listdir(current_dir)

contents = []

for i in sorted(current_list):

fullpath = current_dir + os.sep + i

# 如果是目录,在后面添加一个sep

if os.path.isdir(fullpath):

extra = os.sep

else:

extra = ''

content = {}

content['filename'] = i + extra

content['mtime'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.stat(fullpath).st_mtime))

content['size'] = str(round(os.path.getsize(fullpath) / 1024)) + 'k'

contents.append(content)

# import ipdb;ipdb.set_trace()

return render_template('test.html', contents=contents, subdir=subdir, ossep=os.sep)


def downloader(fullname):

filename = fullname.split(os.sep)[-1]

dirpath = fullname[:-len(filename)]

return send_from_directory(dirpath, filename, as_attachment=True)

======================================

controller.py文件下使用接口调用


@ib.route('/immediate/flask')

def document():

"""flask文件共享服务"""

return service.document()


@ib.route('/download/<fullname>')

def downloader():

"""文件下载"""

return service.downloader()


=================

test.html文件已经放在templtes里面了,但是调用接口一直报错。请问还有哪里需要修改?Flask(__name__)写在哪里?

  • 写回答

5条回答 默认 最新

  • 新码呔 2020-06-03 10:24
    关注

    可以远程哈。

    评论

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败