php - 文件未使用 html 输入类型文件上传

标签 php html codeigniter file-upload

我想使用 HTML 输入类型文件上传文件,但它不起作用。该文件未上传到预期的文件夹和数据库(我想将文件名存储到表中)。当我从浏览器检查时,它没有给我任何错误。当我单击“上传”按钮时,网址类似于 http://localhost/mywebsite/ajax/upload ? ,方法 GET,状态代码 200 OK。我做错了什么?

我正在使用 mac、xampp、phpmyadmin、chrome。

这是我的观点:

<form action="<?php echo site_url('admin/upload')?>" enctype="multipart/form-data">
  <input type="file">
    <button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-upload" aria-hidden="true" ></span> Upload
    </button>
</form>

Controller :

function upload()
{
if (!empty($_FILES)) 
 {
    $filename = $_FILES["file"]["name"];
    $file_basename = substr($filename, 0, strripos($filename, '.'));
    $file_ext = substr($filename, strripos($filename, '.'));
    $tempFile = $_FILES['file']['tmp_name'];
    $data = "admin".uniqid().$file_ext;
    $targetPath = getcwd() . '/kirim_undangan/';
    $targetFile = $targetPath . $data ;
    move_uploaded_file($tempFile, $targetFile);

$data_user = array(
  'request_id'  => $request_id,
  'status'      => '1',
  'filename_admin' => $uploadedFileName,
);
$this->load->model('excel');
$this->excel->upload_excel($data_user);
 }  
}

模型:

function upload_excel($allDataInSheet,$request_id)
{
  $regex = "~\d{5}~";
  array_shift($allDataInSheet);
  foreach ($allDataInSheet as $key)     
  {
     preg_match($regex, $key['B'], $result);       
     $data = array(
     'request_id'         =>   $request_id,
     'to_name'            =>   $key['A'],
     'to_phone'           =>   $key['C'],
     'to_address'         =>   $key['B'],
     'to_zipcode'         =>   $result[0], 
     'tariff'             =>   '0'
     );
  $this->db->insert('excel', $data);
  $this->db->update('request',$request_id);
  }
}

最佳答案

你必须在输入中添加一个名字

<form method="post" action="<?php echo site_url('admin/upload')?>" enctype="multipart/form-data">
  <input type="file" name="file">
    <button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-upload" aria-hidden="true" ></span> Upload
    </button>
</form>

关于php - 文件未使用 html 输入类型文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37670308/

相关文章:

html - 使用 bootstrap 3 更改 div 顺序

php - Codeigniter 设置变量

php - 为什么我不能在 PHP 中使用 __toString() 打印任何内容?

javascript - 打开电子邮件客户端并使用 PHP/JavaScript 提交表单

php - 使用基于变量的php代码初始化组合框

jquery - 分步设置 div 高度以适应平铺背景

php - 是否可以对程序(非 oo)函数使用模拟?

html - CSS 如何让 <span> 和 &lt;input&gt; 一样高?

activerecord - MySQL获取行,但对于任何匹配获取最新版本

php - 如何在特定用户登录时显示工厂