- 论坛徽章:
- 0
|
本帖最后由 zhanggadi 于 2014-05-13 18:00 编辑
Mod_python 已安装 运行正常
我想做的事情
- 有一个静态的HTML文件, 可以让用户选择需要上传的文件
- 有一个现成的PHP文件 用来上传文件到服务器端 (测试没问题)
- 我这里还有一个Python文件 用来做后续的处理
我想通过HTML的submit button 去调用Python脚本, 然后Python脚本再去调用该PHP脚本
目前存在的问题就是 当通过Python 调用PHP的时候 弹出一下错误
TypeError: cannot concatenate 'str' and 'instance' objects
看一下我的Code
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<table align="center">
<tr>
<td colspan="2" style="background-collor: #99bbbb;">
<h1 align="center">APK Checker</h1></td>
</tr>
</table>
<form action="./apkchecker.py/apkchecker" method="post"
enctype="multipart/form-data">
<fieldset>
<legend>Upload the application</legend>
<p>
Application: <input type="file" name="file" accept="" size="150" />
</p>
<br />
</fieldset>
</br>
<input type="submit" value="Apk-Checker">
</form>
</head>
<body>
</body>
</html>
PHP的代码:
<?php
$file_path="upload/";
if(is_dir($file_path)!=TRUE) mkdir($file_path,0664) ;
//............
$ext_arr = array("apk","APK");
if (empty($_FILES) === false) {
if($_FILES["file"]["error"] > 0){
exit("File Upload Failed".$_FILES["file"]["error"]);
}
//.......
$temp_arr = explode(".", $_FILES["file"]["name"]);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext);
if (in_array($file_ext, $ext_arr) === false) {
exit("The extension of uploaded file is disallow");
}
$new_name = $_FILES["file"]["name"].".".$file_ext;
move_uploaded_file($_FILES["file"]["tmp_name"],"$file_path" . $new_name);
echo "Application upload Success<br />";
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
exit;
} else {
echo "Please upload the correct application";
}
?>
Python的code
import subprocess
def apkchecker (req, file):
uploader = subprocess. Popen("php -f /var/www/apkchecker/mutiple-uploader.php " +file, shell=True, stdout=subprocess.PIPE)
uploader.wait()
uploaderfile = uploader.stdout.read()
return uploaderfile
|
|