get方法获取POST方法不能的字段值? (PHP)

时间:2012-03-30 06:31:25

标签: php post get

我有一个像

这样的POST方法的表单
<form name="imgbnk" action="imgbnk.php" method="POST" enctype="multipart/form-data" onsubmit="return validateForm()">
select the image <input type="file" name="imgloc">

imgbnk.php正在将其检索为$filename=$_POST["imgloc"];

问题是

  1. 当我使用POST方法时,$filename未从表单imgbnk获取任何值,就好像我使用GET方法一样,$filename正在返回文件在预期的名字,我想知道为什么POST无法检索相同的。
  2. $size=getimagesize($filename);在使用Warning: getimagesize(Hydrangeas.jpg) [function.getimagesize]: failed to open stream: No such file or directory in C:\wamp\www\imgbnk\imgbnk.php方法时会出现如GET的警告。
  3. 如果我使用POSTWarning: getimagesize() [function.getimagesize]: Filename cannot be empty
  4. 请帮助我理解为什么会发生这种情况,任务是获取图像的完整属性并将其存储在本地。

    提前致谢:)

4 个答案:

答案 0 :(得分:2)

您必须使用POST来上传文件。然后使用$ _FILES访问上传文件的属性,而不是$ _POST。

有关详细信息,请参阅此手册条目:http://php.net/manual/en/features.file-upload.php

答案 1 :(得分:0)

您可以使用$_FILES代替$ _POST。将获取文件的所有属性。 $ _POST不能用于此文件上传

答案 2 :(得分:0)

您可以在$_FILES['imgloc']['name'] ...

中获取文件名

答案 3 :(得分:0)

我建议你这样做

要检索图像属性,请使用

$name=$_FILES['imgloc']['name'];
$size=$_FILES['imgloc']['size'];
$type=$_FILES['imgloc']['type'];
$tmp_path=$_FILES['imgloc']['tmp_name'];
$error=$_FILES['imgloc']['error'];

并且要检索其他表单字段详细信息,请使用

$title=$_POST['title'];
$description=$_POST['desc'];
$keywords=$_POST['keywords'];
$catagiri=$_POST['catagiri'];