我有这个上传表单:
<form action="upload.php" enctype="multipart/form-data" method="post">
<b>Select your image:</b><br><input type="file" name="userfile" id="file" size="90%" /><br>
(Max size: 10mb)<br>
<b>Browseable:</b><br><input type="radio" name="browse" id="browse" value="1" /> Yes <input type="radio" name="browse" id="browse" value="0" /> No<br>
<input type="submit" value="Upload Image" size="100" />
</form>
这个PHP代码:
<?PHP
$maxsize = 10485760; // Max File Size IN BYtes
$accepted = array('png', 'jpg', 'jpeg','JPEG', 'gif', 'ico', 'tif', 'bmp', 'PNG');
$length = 10;
$randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
preg_match('/\.([a-zA-Z]+?)$/', $_FILES['userfile']['name'], $matches);
if(in_array(strtolower($matches[1]), $accepted)) {
if($_FILES['userfile']['size'] <= $maxsize) {
$newname = md5_file($_FILES['userfile']['tmp_name']).'.'.$matches[1];
$browse = $_POST["browse"];
if ($browse = "1") {
$filedir = 'img';
} else {
$filedir = 'noimg';
}
move_uploaded_file($_FILES['userfile']['tmp_name'], $filedir.'/'.$newname);
header("Location: index.php?p=uploaded&img=$newname");
} else
header("Location: index.php?p=error&num=2");
} else
header("Location: index.php?p=error&num=1");
}
?>
$ _POST [“browse”]之后的部分无效。此脚本的目的是将图像放在上载后的公共文件夹或私有文件夹中。我也很好奇这个上传脚本是否安全。
答案 0 :(得分:1)
您有作业运算符(=
)而不是比较(==
或===
)
if ($browse == "1") { // or $browse === 1 or $browse == 1
$filedir = 'img';
} else {
$filedir = 'noimg';
}
答案 1 :(得分:1)
我假设The portion after $_POST["browse"] is not working.
表示真正的块总是被触发?如果是,请将if ($browse = "1")
更改为if ($browse == "1")
。您的if
语句正在检查$browse
是否可以分配值1,而不是等于1。
答案 2 :(得分:0)
if ($browse = "1") {
您正在为$ browse ...分配1&gt;&gt; “==”!
然后做:
$res = move_uploaded_file($_FILES['userfile']['tmp_name'], $filedir.'/'.$newname);
var_dump($res);
die;
看看发生了什么:)