Nano Hash - криптовалюты, майнинг, программирование

Загрузка нескольких файлов Codeigniter с помощью HTML5, можно ли это сделать с помощью таких инструментов, как Uploadify?

Можно ли сделать загрузчик нескольких файлов, используя только HTML5 и PHP? Я надеялся, что смогу выбрать несколько файлов, сохранить их в цикле и просто перебрать все файлы и загрузить их на сервер.

Но Codeigniter загружает только первый выбранный мной файл.

foreach ($_FILES as $key => $value)
{
      $this->upload->do_upload($key['name'])
}

У меня есть дополнительная логика для обработки таких вещей, как путь загрузки и имя файла, но этот код в порядке, но этот цикл, похоже, работает только для первого выбранного файла и больше ничего.

Если невозможно использовать HTML5 и php, я просто использую Uploadify или есть способ изменить класс загрузки для поддержки загрузки нескольких файлов?

Вот мой метод более или менее,

public function uploadScreens($id) {
$this->load->library('upload');
$config['allowed_types'] = '*';
$config['max_size'] = '45000';
$config['max_width'] = '20000';
    $config['max_height'] = '15000';
foreach ($_FILES as $key => $value)
    {
    if (!empty($key['name']))
            {
                $this->db->set('gameid', $id);
        $this->db->insert('gamescreens');
                $screenid = $this->db->insert_id();

                $this->createDirectory($screenid);
                $filename = $this->randomFilename();
                $config['file_name'] = "$filename";
                $config['upload_path'] = APPPATH . "../content/gamescreens/" . $screenid . '/';
                $this->upload->initialize($config);

                if ($this->upload->do_upload($key['name']))
                {
                    $data = $this->upload->data();
                    $sourceurl = $data["full_path"];
                    $this->db->simple_query("update gamescreens set source = '$sourceurl' Where id=$screenid");
        }
                else
                {
                    //catch eerrors
                }
            }
    }

}


Ответы:


1

Основываясь на вашем примере кода, я вижу следующую проблему:

foreach ($_FILES as $key => $value)
{
      $this->upload->do_upload($key['name'])
}

Я считаю, что должно быть $value['name'], не так ли?

22.04.2013

2

Насколько я знаю, вам не нужно обрабатывать несколько файлов с помощью CI при использовании uploadify. Потому что uploadify будет загружать файлы (очередь загрузки) один за другим, вызывая действие контроллера один раз для каждого файла.

Я использую это действие в своем контроллере загрузки, чтобы загрузить 10 файлов изображений.

/**
 * Upload Action.
 */
public function upload()
{
    $targetFolder = '/uploads'; // Relative to the root

    if (!empty($_FILES)) {


        // Validate the file type
        $fileTypes = array('jpg','jpeg','gif','png'); // File extensions
        $fileParts = pathinfo($_FILES['Filedata']['name']);

        $tempFile = $_FILES['Filedata']['tmp_name'];
        $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
        $targetName = uniqid() . '.' . $fileParts['extension'];
        $targetFile = rtrim($targetPath,'/') . '/' . $targetName;

        if (in_array($fileParts['extension'],$fileTypes)) {
            move_uploaded_file($tempFile, $targetFile);
            echo $targetName;
        } else {
            echo 'Invalid file type.';
        }
    }
}

И это моя конфигурация загрузки на стороне клиента

// create file uploader
$('#file_upload').uploadify({
    'swf'      : '/swf/uploadify.swf',
    'uploader' : YOUR_CONTROLLER + '/upload',
    'uploadLimit' : 10,
    'onUploadSuccess' : function(file, data, response) {
        // do stuff where a file is uploaded
    },
    'onQueueComplete' : function(data) {
        // do stuff when queue done
    }
});

Надеюсь, поможет.

12.02.2013

3

Это распространенная проблема с CodeIgniter. Чтобы загрузить несколько файлов в CI, вам нужно вызвать $this->upload->initialize($config); в цикле.

25.01.2012
  • У меня он был в цикле раньше, но он не выполнял загрузку нескольких файлов. Я обновил свой код своим методом. 25.01.2012
  • Я так не думаю, я просто выбираю несколько файлов. И иметь один входной тег в представлении. 30.01.2012

  • 4

    я не использую uplodify для загрузки нескольких файлов

    но я использую здесь

    и немного отредактируйте библиотеку с несколькими загрузками и получите некоторую проблему здесь

    он может загружать несколько файлов, но я не знаю, что не так с «загрузить данные файла» в случае успеха, он просто показывает «загрузка файла данных из последнего загруженного файла»

    я надеюсь, что это поможет вам, если вы можете решить эту проблему, дайте мне знать, чтобы

    17.02.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..