1

基本上,我需要一种上传 CSV 文件并将其保存到多维数组中的方法,如标题所述。

我在网上进行了广泛搜索,我在这里找到了一个 jQuery-csv 插件: https ://github.com/evanplaice/jquery-csv

该 jQuery 库可以处理将 CSV 文件转换为多维数组,尽管这是我遇到真正麻烦的上传部分。

我在如何将 PHP 和 jQuery 交互在一起时遇到了困难。我知道 PHP 总是首先在服务器上调用,然后在客户端调用 jQuery/Javascript。因此,我对如何允许一个曾经通过 PHP 上传 CSV 文件,保存位置,将其传递给 jQuery,然后将其保存在那里感到非常困惑。

我确信这很可能是一项简单的任务,尽管我无法在任何地方找到答案。

所以这就是我想做的事情:

  • 使用 PHP 上传文件
  • 使用 PHP 或 jQuery 将 CSV 保存到字符串中
  • $.csv.toArrays(csv);使用jQuery-csv add on将 CSV 解析为多维数组

非常感谢所有帮助和建议,谢谢!

4

1 回答 1

2

在 html 中创建一个简单的文件上传表单,当按下提交按钮时,它将通过 post 将文件上传到您的 php 脚本 yourscript.php。确保为您的文件类型输入命名,因为您需要在 php 中引用该名称

<form action="yourscript.php" method="post" enctype="multipart/form-data">
 <input type="file" name="upload_file" />
 <input type="submit" />
</form>

PHPyourscript.php

<?php
$csv_array = Array();
$file = fopen($_FILES['upload_file']['tmp_name'], 'r');
if($file){
    while (($line = fgetcsv($file)) !== FALSE) {
      //$line is an array of the csv elements
      array_push($csv_array,$line);
    }
    fclose($file);
}
?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script>var your_array = <?php echo json_encode($csv_array); ?></script>
</head>
<body>

</body>
</html>

来自如何使用 PHP 和 fgetcsv 函数从 CSV 文件创建数组

当您开始使用 ajax 处理文件上传时,事情会变得有点棘手,所以我建议您在尝试使用 ajax 进行文件上传之前了解 ajax 的工作原理

于 2013-08-21T07:04:34.280 回答