有人可以发现我做错了什么吗?我在我网站上的其他页面上复制了它,但是我无法在这个页面上工作。还有我遗漏的文本输入正在按预期工作。感谢。
<?php
if (isset($_POST["save"])) {
if (isset($_POST['pic'])){
//isset never detected when image is uploaded in html
}
}
<html>
<form class="form-horizontal" onsubmit="return checkSize(2097152)" enctype="multipart/form-data" data-toggle="validator" method="POST" action="profile.php">
<input id="pic" name="pic" type="file" accept="image/*" class="text-center center-block well well-sm">
<div class="form-group">
<label class="col-md-3 control-label"></label>
<div class="col-md-8">
<button class="btn btn-primary" name="save" id="save">Save Changes</button>
<a href="profile.php" class="btn btn-default" role="button">Cancel</a>
</div>
</div>
</form>
<script type="text/javascript">
//check image size func
function checkSize(max_img_size)
{
var input = document.getElementById("pic");
// check for browser support (may need to be modified)
if(input.files && input.files.length == 1)
{
if (input.files[0].size > max_img_size)
{
alert("Profile Picture must be less than " + (max_img_size/1024/1024) + "MB");
return false;
}
}
return true;
}
另外:我刚做了一个print_r($ _ POST);的print_r($ _ FILES);并没有上传图片:
数组([昵称] =&gt; raySirSharp [motto] =&gt;大吞嘛?[email] =&gt; razer88@hotmail.com [提交] =&gt;)数组([pic] =&gt;数组( [name] =&gt; [type] =&gt; [tmp_name] =&gt; [error] =&gt; 4 [size] =&gt; 0))
上传图片:
数组([昵称] =&gt; raySirSharp [motto] =&gt;大吞嘛?[email] =&gt; razer88@hotmail.com [提交] =&gt;)数组([pic] =&gt;数组( [name] =&gt; 12472627_211490652554223_5803523050459466916_n.jpg [type] =&gt; image / jpeg [tmp_name] =&gt; / tmp / phpvNCBzj [error] =&gt; 0 [size] =&gt;&gt; 70254))
我可以用什么来检测图片是否已上传?
我试过了:
if (isset($_FILES['pic'])){ //always true :( }
答案 0 :(得分:1)
空而不是isset
if (!empty($_POST['pic'])){
}
我希望它能解决你的问题
我没有找到任何提交表单的代码,所以如果没有提交,你就无法在下一页获得POST变量。
答案 1 :(得分:1)
要接受HTML表单中的文件,您需要使用$ _FILES而不是$ _POST。例如,您可以使用*root
来获取文件名。
从那里你可以将图片移动到这样的新位置:
$_FILES["pic"]["name"]
答案 2 :(得分:1)
@Ryan当您的输入类型为文件时,您正在使用$ _POST左侧尝试使用$_FILES['pic']
代替$ _POST
答案 3 :(得分:1)
解决了:
if (!empty($_FILES["pic"]["name"])){ }
作品! :)
答案 4 :(得分:0)
在按钮中加入type='submit'
。
<button type='submit' class="btn btn-primary" name="save" id="save">
Save Changes
</button>
要提交
<form>
,您的输入类型必须为submit
。
HTML Submit按钮用于将表单数据提交到ACTION属性中提到的脚本。只要SUBMIT设置了ACTION,您的数据就会被发送到某个地方。但是提交按钮的NAME属性非常方便。您可以使用此名称来测试表单是否真的已提交,或者用户是否只是单击了刷新按钮。当PHP脚本与HTML表单位于同一页面时,这很重要。
答案 5 :(得分:0)
尝试
print_r($_POST);
看结果,如果没有返回任何东西可能是问题是onSubmit的checkSize()触发...
答案 6 :(得分:0)
您好php
开始之前尚未关闭tag
html
。并尝试打印$_FILES
您将获得所有image
信息
<?php
if (isset($_POST["save"])) {
// echo "<pre>";print_r($_FILES['pic']);
//then to upload use this
$file_name = $_FILES['pic']['name'];
$file_tmp =$_FILES['pic']['tmp_name'];
move_uploaded_file($file_tmp,"images/".$file_name);
}
?>
答案 7 :(得分:0)
我认为这是原因,我建议您使用提交表单提交类型。请使用此<button class="btn btn-primary" name="save" id="save">Save Changes</button>
删除此<input type='submit' class="btn btn-primary" name="save" id="save">
。告诉我它是否