我正在尝试创建一个脚本,以便用户可以输入一个URL和新文件名,该URL将被下载(重命名为新文件名)到/var/www/dl,以及一个进度文件(progress0001.txt。。。progressXXXX.txt文件)将在每次下载过程中更新
我有两个文件:dl.php文件,和rdl.py公司你知道吗
你知道吗dl.php文件地址:
<?php
$name=$_GET["name"];
if (file_exists("dl/$name")){
die("FILE EXISTS");
}
else {
$str=("/var/www/rdl.py '$name' '".$_GET["url"]."'");
//echo $str;
exec("$str &");
}
?>
added
你知道吗rdl.py公司你知道吗
#!/usr/bin/env python
import urllib, os, sys
fname=sys.argv[-2]
url=sys.argv[-1]
name="progress"
end="txt"
while os.path.isfile("/var/www/p/%s.%s"%(name, end)):
try:
post=int(name[-4:])
name=name[:-4]
except:
post=0
post+=1
name="%s%04i"%(name, post)
pname="%s.%s"%(name, end)
def report(count, blockSize, totalSize):
global pname
percent = float(count)*blockSize*100/totalSize
pg=open("/var/www/p/%s"%pname, "w+")
pg.write(str(percent))
urllib.urlretrieve(url, os.path.join("/var/www/dl", fname), reporthook=report)
我可以在一个命令行中运行传递给php文件中exec
的确切命令,它工作正常。但是当PHP脚本执行它时,我得到的下载文件是存在的,但是完全是空的,没有进度文件。
我已经在谷歌上搜索和调整了几个小时,我完全不知所措。这是怎么回事?你知道吗
结果是文件权限问题,apache没有执行脚本的权限,因为它不拥有这些脚本。你知道吗
相关问题 更多 >
编程相关推荐