在PHP中上传带有图像的表单

时间:2016-02-12 08:48:13

标签: php html

我正在尝试上传包含图片的表单。我能够获得品牌名称等数据。这是我的代码片段。我没有得到图像名称和类型。此代码中需要进行哪些更改?得到错误

  

move_uploaded_file():无法将'/ tmp / phpRBnjTS'移动到   '/var/www/html/download.jpg'in   第156行的/var/www/html/rtc/view/setup_config.php,referer:   http://192.168.50.123/rtc/view/setup_config.php

Set book = myOBJ.WorkBooks.Open(FileName:="mybook.xls", ReadOnly:=True)

5 个答案:

答案 0 :(得分:2)

您需要在表单标记

中添加它
<form name="formcfg" id="formcfg" action="" method="post" enctype="multipart/form-data">

图像需要表单类型为多部分编码。

答案 1 :(得分:2)

请使用以下代码

<form name="formcfg" id="formcfg" action="" method="post" enctype="multipart/form-data">
    <input type="hidden" name="mode" id="mode" value="insert" />
    <div id="dashboard">
      <h2>Brand Name</h2>
      <div>
        <table width="100%">
        <tr>
            <td width="15%">Brand Name*</td>
            <td width="92%">
              <input type="text" name="context" id="context" class="input required" placeholder="Brand /directory Name" title="Brand /directory Name"/>
            </td>
        </tr> 

        <tr>
            <td width="15%">Brand Logo</td>
            <td  id="tmp" width="92%">

            <input type ="file" name ="image"  style="width:180px;height:20px"><span id='val'></span>
              <input type="hidden" name="MAX_FILE_SIZE" value="2097152" />

            </td>
        </tr>  
        </table> 
      </div>
    <span class="clear" style="float:left; margin-top:5px;margin-bottom:5px; margin-left:60px;">
    <input type="submit" name="submit" required class="btn"  value="submit"></span>
</form> 
<?php
if(isset($_POST['submit'])) 
{ 
    $BrandName=$_POST['context'];
    $filename  = $_FILES['image']['name'];
    $type=$_FILES['image']['type'];
    $path= 'var/www/html/';
    //$filedata  = file_get_contents($filename);
    error_log("===file  is $filename===");


    if($filename!="")
    {
        move_uploaded_file($_FILES['image']['tmp_name'],$path.$filename);
    }   
}
?>

答案 2 :(得分:1)

您需要在表单标签中添加enctype

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

写下您的表格标签如下:

<form name="formcfg" id="formcfg" action="" method="post" enctype="multipart/form-data">

答案 3 :(得分:1)

您应该查看手册:http://php.net/manual/en/features.file-upload.post-method.php

实际上,您在表格中遗漏了一个属性:

<form enctype="multipart/form-data" action="_URL_" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    Send file : <input name="userfile" type="file" />
    <input type="submit" value="Send file" />
</form>

答案 4 :(得分:0)

您的表单标记中遗漏了enctype="multipart/form-data属性。

对于您的错误,请使用以下代码

$destination_path = getcwd().DIRECTORY_SEPARATOR;
$target_path = $destination_path . basename( $_FILES["image"]["name"]);
@move_uploaded_file($_FILES['image']['tmp_name'], $target_path);

希望它会对你有所帮助:)。