繁体   English   中英

获取没有提交按钮的已提交表单的价值

[英]Get value of a submitted form without submit button

我正在尝试上传没有提交按钮的图像。 我的代码无需提交即可正常工作。

我的HTML代码

<form name="service_image_form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 Add new image <input name="userfile" type="file" id="userfile" onchange="return subForm()" /> 
</form>

<script>
function subForm() {
document.service_image_form.submit();
};
</script>

但是我在使用PHP检索数据时很少感到困惑。 在PHP中,我尝试了类似的方法来检索数据。

if (isset($_POST['service_image_form']))
{
echo "working";
}

在这里,我试图回显“工作”只是为了确认。 如果我的条件正常,则可以将映像保存到服务器和数据库。 我知道它很简单,但是在这里停留了一段时间。 浏览了很多链接,但不知道。 这个你能帮我吗。

我知道如果我有一个名称为“ submit”的提交按钮,那么我可以像这样检索

 if(isset($_POST['submit']))
 {
 upload code comes here..
 }

我不要提交按钮。

要检查是否发出过帐请求:

if($_SERVER['REQUEST_METHOD']=='POST'){
    echo "working";
}

请注意,上传的文件数据将位于$_FILES超全局变量中,而不是$_POST ,并且正如Fred所提到的,您将需要在表单上添加enctype属性

您需要这样添加enctype属性

<form name="myform" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 Add new image <input name="userfile" type="file" id="userfile" onchange="return subForm()" /> 
</form>

在您的php中,您可以使用$ _FILE获取上传的文件

<?php
if ($_FILES['userfile']['error'] > 0) {
  echo $_FILES['userfile']['error'];
} else {
  echo 'Name: ' . $_FILES['userfile']['name'];
  echo 'Temp file location in: ' . $_FILES['userfile']['tmp_name'];
}
?>

因此,基本上,您正在尝试检查上传是否正确,对吗? 好吧,这不是怎么做的。

PHP对于该http://php.net/manual/pl/features.file-upload.php具有出色的手册

你想念:

  • 正确的表单编码,将属性enctype =“ multipart / form-data”添加到表单标签中
  • 您的文件将放置在$ _FILES ['userfile']变量中
  • 您可以检查$ _FILES ['userfile'] ['error']来确定上传是否成功(如果成功,则等于常量UPLOAD_ERR_OK,0)

之后一切顺利,您可以在此处找到所有详细信息, 网址为http://php.net/manual/pl/features.file-upload.post-method.php,这非常简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM