我正在尝试在Symfony 2中导入.csv文件。我已经创建了一个文件表单,现在我想将它保存在我的数据库中。

这是我的处理程序文件,我想在其中进行.csv处理并保留它:

public function process()
{
    if ($this->request->getMethod() == 'POST')
    {
        $this->form->bindRequest($this->request);

        $tableau = array();
        $i = 0;
        $c = 0;
        $num = 0;

        if (isset($_FILES['file']))
        {
            $file = $_FILES['file']['tmp_name']; 
            $handle = fopen($file,'r'); 
            $row = 1; 
            $handle = fopen("$file", "r"); 

            while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
            {
                $num =+ count($data);
                $row++; 

                for ($c = $i; $c < $num; $c++)
                {
                    $tableau[$c] = $data[$c];
                    $i++;
                }
            }
        }
        $tableau[$c+1] = $i;

        /*
        if ($this->form->isValid())
        {
            print_r($this->form->getData());

            $this->onSuccess($this->form->getData());

            return true;
        }
        */
    }

    return false;
}

当我尝试测试时,我的页面顶部会显示一些文字:

数组([fichier] => Symfony \\ Component \\ HttpFoundation \\ File \\ UploadedFile对象([test:Symfony \\ Component \\ HttpFoundation \\ File \\ UploadedFile:private] => [originalName:Symfony \\ Component \\ HttpFoundation \\ File \\ UploadedFile:private] => testcsv.csv [mimeType:Symfony \\ Component \\ HttpFoundation \\ File \\ UploadedFile:private] => text / csv [size:Symfony \\ Component \\ HttpFoundation \\ File \\ UploadedFile:private] => 491 [错误:Symfony \\ Component \\ HttpFoundation \\ File \\ UploadedFile:private] => 0 [pathName:SplFileInfo:private] => / Applications / MAMP / tmp / php / phpSr5O5S [fileName:SplFileInfo:private] => phpSr5O5S))

我不懂那些东西。

#1楼 票数:16 已采纳

如果你想做一个正确的symfony2方式,你应该创建一个symfony表单来提交文件。 例如:

// Your Controller.php
$form = $this->createFormBuilder()
        ->add('submitFile', 'file', array('label' => 'File to Submit'))
        ->getForm();

// Check if we are posting stuff
if ($request->getMethod('post') == 'POST') {
    // Bind request to the form
    $form->bindRequest($request);

    // If form is valid
    if ($form->isValid()) {
         // Get file
         $file = $form->get('submitFile');

         // Your csv file here when you hit submit button
         $file->getData();
    }

 }

return $this->render('YourBundle:YourControllerName:index.html.twig',
    array('form' => $form->createView(),)
);

枝条:

<!-- index.html.twig Twig part -->
{% extends "YourBundle::layout.html.twig" %}

{% block content %}
    <form action="" method="post" {{ form_enctype(form) }}>
        {{ form_widget(form) }}

        <input type="submit" />
    </form>
{% endblock %}

不要忘记{{ form_enctype(form) }}对于告诉我们正在发送文件很重要。 Symfony2将生成enctype="multipart/form-data"标记

#2楼 票数:15

如果您不想要表单,可以这样做:

public function processAction() {
    foreach($this->getRequest()->files as $file) { 
        if (($handle = fopen($file->getRealPath(), "r")) !== FALSE) {
            while(($row = fgetcsv($handle)) !== FALSE) {
                var_dump($row); // process the row.
            }
        }
    }
    //return response.
}

  ask by Freiyer translate from so

未解决问题?本站智能推荐:

1回复

通过CSV在Magento中导入订单

我用下面的代码。 它正在研究简单产品和单一产品。 以编程方式为所有类型的产品创建订单。 首先,我将产品添加到购物车中,然后我将所有参数添加到订单中,例如装运,付款方式以及开票和装运方式。 当我向产品添加选项时,它将生成空白产品订单。 但这不适用于其他产品类型。 我也用下面
2回复

在Matlab中导入CSV文件

我有一个csv文件,其中每一列都是不同的测试结果,并且每一行都是不同的模拟。 看起来像这样: 请注意,方括号中的文本不在cvs文件中。 我想将此数据以其在文本文件中的组织方式导入到Matlab中,但是结果矩阵具有3列和所需的行数。 这是为什么? 我如何解决它? 另外,有
2回复

在MATLAB中导入CSV文件

我正在尝试使用以下代码导入具有很多小数字(介于1.0E-11和1.0E-9之间)的csv文件 (7816 x 119): 当我检查导入结果时,我得到 请注意, D的大小比原始数据的大小小很多。 当我对具有更大数字(不是科学计数法)的矩阵执行相同的处理时,我没有任何问题。
1回复

在MySQL中导入csv [重复]

这个问题已经在这里有了答案: 将CSV导入mysql表 12答案 例如,我有很多列的csv并有我的数据库。 我需要将所有数据从1个名为oldfile列导入到我的数据库中, symbol为column。 如何使它与SQL查询?
1回复

在PostgreSQL中导入CSV表

我想用以下结构在PostgreSQL csv表中导入: 我使用sql查询: 但是会收到异常:错误:上一个预期的列SQL状态之后的多余数据:状态22P04,行2。希望有人可以提供帮助。 提前谢谢。
1回复

在SQL Server中导入CSV文件

我想在sql server中导入csv数据。 我搜索并找到有关BULK INSERT ... FROM的答案。 我的问题是: 我只想选择结果的一栏 该表已经存在错误的数据,我只想更新这些字段 我拥有的CSV包含城镇及其参数(正确的数据) SQL Serv
1回复

如何在没有刚性模型的mongoid中导入Rails中的CSV文件

我正在研究一个需要将测试结果导入MongoDB数据库的Rails 4.2应用程序。 我正在使用mongoid作为映射器。 我发现很少有关于CSV导入的文章,其中最有用的是RailsCasts - 导入csv和excel#396 。 我的问题是我的测试结果没有一定数量的列,数量根据经验而
1回复

从许多文件类型的目录中导入Excel中的.csv

您好,我有一个文件夹,其中包含82个各种类型的文件(.cpg,.dpf,.csv等...) 我希望excel进入该文件夹,仅导入应该有24个文件的.csv文件。 由于某种原因,这似乎要导入49张纸而不是24张纸,而且我也想为每个语句添加一个if语句,但if语句草率,但不知道更好的方法?有