簡體   English   中英

重命名無法使用InputFilter導入的文件

[英]rename file which couldn't be imported using InputFilter

我不太確定如何正確地問這個問題。 我一口氣導入了幾個文件。 文件名包括文件所屬的匹配系統。 到目前為止,效果還不錯。 但是將存在不匹配的文件,因為找不到系統。 我需要標記它們,以便用戶檢查。

我的想法是將此文件也導入到Web服務器,但在另一個目錄中。 該目錄可以隨后顯示給用戶。

我的InputFilter將導入到匹配文件的正確位置。

$inputFilter->add([
            'type'     => 'Zend\InputFilter\FileInput',
            'name'     => 'PAD_Document_Path',  // Element's name.
            'required' => true,    // Whether the field is required.
            'filters'  => [        // Filters.
                    [
                            'name' => \Zend\Filter\File\RenameUpload::class,
                            'options' => [
                                    'use_upload_name'=>true,
                                    'use_upload_extension' => true,
                                    'randomize' => false,
                                    'overwrite' => true,
                                    'target' => './public/files/pads',
                            ],
                    ],
            ],
            'validators' => [      // Validators.
                    [
                            'name' => \Zend\Validator\File\Extension::class,
                            'options' => [
                                    'extension' => 'pdf',
                                    'message' => 'File extension not match',
                            ],
                    ],
                    [
                            'name' => \Zend\Validator\File\MimeType::class,
                            'options' => [
                                    'mimeType' => 'application/pdf',    //'text/xls', 'text/xlsx',
                                    'message' => 'File type not match',
                            ],
                    ],
                    [
                            'name' => \Zend\Validator\File\Size::class,
                            'options' => [
                                    'min' => '1kB',  // minimum of 1kB
                                    'max' => '8MB',
                                    'message' => 'File too large',
                            ],
                    ],
            ]
    ]);

那么我也可以使用InputFilter導入不匹配的文件嗎? 如果那不可能,那是最好的方法?

還有一個想法是根本不導入不匹配的文件,但是隨后我需要在客戶端系統上重命名它們。 那可能是不可能的,不是嗎?

我希望我能正確地解釋它,以便每個人都能理解。

由於以下問題的評論討論,我們提出了一個可能的解決方案。

(請試一試,否則在解決時添加自己的答案)


如果我們退后一步,則在導入之前。 然后是驗證的重點,如果要在此時進行重命名,您將如何做?

該文檔還通過設置文件的目標位置,向您展示了如何重命名文件的選項。 但是,這是所有文件的規則。

您應該創建諸如此類的規則,以統一驗證文件。 當您需要根據標准(例如文件名)將文件發送到特定位置時,則應在表單驗證之后創建此邏輯。 例如在Controller類中。 在該Controller中,您可以處理符合您“快樂流程”中要求的文件,並將那些不匹配的文件保留在臨時文件中。

如果有任何不匹配的文件,則將用戶重定向到他必須確定文件目的地和/或如何處理文件的位置。 如果沒有任何文件,則可以正常處理應用程序。

流程示例:

  1. 文件A到F被上載。
  2. A和B很好,它們與系統X和Y匹配並移動。

上述2后不匹配的文件(C至F)的備用流

  1. 剩余部分無法匹配。
  2. 如果文件是X或Y,則用戶將重定向到每個文件必須選擇的頁面。
  3. 將文件作為更正移至所選選項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM