使用PHP提交表单

时间:2013-12-11 08:54:59

标签: php html

我正在尝试使用 PHP 提交表单。我试图从我的表单中的两个文件输入中获取值,但是当我尝试使用 PHP 代码对它们进行索引时,我一直收到错误。

错误我得到了:

Undefined index: profile-pic in C:\xampp\htdocs\shareitme\form-test.php on line 5

Undefined index: cover-pic in C:\xampp\htdocs\shareitme\form-test.php on line 6

我的代码

<?php

if (isset($_POST['submit'])) {

    $profile_pic= time() . $_FILES['profile-pic']['name'];
    $cover_pic= time() . $_FILES['cover-pic']['name'];

}

?>

    <form id="editprofile" method="post" action="<?php echo $_SERVER['PHP_SELF']     
?>">
        <input type="hidden" name="MAX_FILE_SIZE" value="5000000"/>
        <input type="file" name="profile-pic"/>
        <input type="file" name="cover-pic"/>
        <input type="submit" name="submit" value="submit"/>
    </form>

我知道我的名称是正确的,我做错了什么?

6 个答案:

答案 0 :(得分:2)

要在表单中上传包含enctype="multipart/form-data"的文件,请执行以下操作:

<form id="editprofile" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']     
?>">

enctype属性指定在将表单数据提交到服务器时应如何编码表单数据。

有关表单的更多信息:http://www.w3schools.com/tags/att_form_enctype.asp

要重命名已上传的文件,最好将其上传到move_uploaded_file的服务器,然后重命名。

答案 1 :(得分:0)

尝试:

<?php

if (isset($_REQUEST['go']) && $_REQUEST['go'] == "1") {

$profile_pic= time() . $_FILES['profile-pic']['name'];
$cover_pic= time() . $_FILES['cover-pic']['name'];

}

?>

<form id="editprofile" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<input type="hidden" name="MAX_FILE_SIZE" value="5000000"/>
    <input type="file" name="profile-pic"/>
    <input type="file" name="cover-pic"/>
    <input type=hidden name="go" value="1">
    <input type="submit" name="submit" value="submit"/>
</form>

答案 2 :(得分:0)

在表单标记中使用enctype="multipart/form-data" 无论何时想要发布二进制数据,都必须设置此enctype属性。

答案 3 :(得分:0)

1)如果您使用的是文件类型,则表单属性应为enctype="multipart/form-data"

<form id="editprofile" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

2)在使用您的帖子值之前,最好先检查一下是否已设置。

$pic=isset($_FILES['profile-pic']['name']) ? $_FILES['profile-pic']['name'] : '';

答案 4 :(得分:0)

每当您想要上传文件时。您需要添加enctype来自。

`enctype="multipart/form-data"' 

这应该有效

<form id="editprofile" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']     
?>">

答案 5 :(得分:0)

如果我没弄错的话,你在这里尝试做什么,就是在你的服务器上传图像吧?您只需使用第三方上传工具即可。我建议使用AjaxUpload,因为它基于AJAX并且非常容易实现。 为简单起见,我在一个图像上应用上传功能。您只需将其放入函数中并重复使用即可。

 <p id="showMsg"></p>
 <input type="file" name="profile-pic" id="profilePic" />

JQuery的:

$("#profilePic").ajaxUpload({
url : $_SERVER['PHP_SELF'], 
name: "file",
onSubmit: function() {
    $('#showMsg').html('Uploading ... ');
},
onComplete: function(result) {
    $('#showMsg').html('File uploaded with result' + result);
}
});

PHP:

<?php

if (isset($_FILES)) 
{

    $file = $_FILES['file'];
    move_uploaded_file($_FILES["file"]["tmp_name"], 'upload_dir/' . $_FILES["file"]["name"]); // This function will upload the image to 'upload_dir' folder. You can modify it as per your requirements.

}

?>