Télécharger plusieurs fichiers dans CodeIgniter
Dans mon CodeIgniter projet, je suis le téléchargement de fichiers lors de la création du projet. Voici la fonction de téléchargement:
function uploadFiles(){
$this->load->library('upload');
$error = 0;
$projectName = $_POST['projectname'];
mkdir('./uploads/'.$projectName);
for($i=0; $i<count($_FILES); $i++)
{
$_FILES['userfile']['name'] = $_FILES['files']['name'][$i];
$_FILES['userfile']['type'] = $_FILES['files']['type'][$i];
$_FILES['userfile']['tmp_name'] = $_FILES['files']['tmp_name'][$i];
$_FILES['userfile']['error'] = $_FILES['files']['error'][$i];
$_FILES['userfile']['size'] = $_FILES['files']['size'][$i];
$config['upload_path'] = './uploads/'.$projectName;
$config['allowed_types'] = 'xml|etl';
$config['max_size'] = '0';
$config['overwrite'] = TRUE;
$this->upload->initialize($config);
if($this->upload->do_upload())
{
$error += 0;
}else{
$error += 1;
}
}
if($error > 0){ return FALSE; }else{ return TRUE; }
}
Et j'appelle cette fonction dans le create_project fonction comme ceci:
public function create_project() {
$this->load->library('form_validation');
$this->form_validation->set_rules('projectname', 'Project name', 'required');
$this->form_validation->set_message('required', 'This is an obligatory field');
if($this->form_validation->run() == FALSE) {
$this->load->view('project_creation_view');
} else {
$this->load->model('Project_management_model');
$this->Project_management_model->create_project();
$this->uploadFiles();
}
}
Toutefois, cela ne pas faire n'importe quoi. Les fichiers ne sont pas téléchargés. Même un répertoire vide n'est pas créé. Quelqu'un pourrait-il m'aider à trouver l'erreur?
Grâce.
source d'informationauteur cycero
Vous devez vous connecter pour publier un commentaire.
Vous pouvez Télécharger n'importe quel nombre de Fichiers..
C'est une extension de la CI_Upload classe que j'ai modifié pour télécharger plusieurs fichiers, il suffit de copier ce à la MY_Upload.php fichier. Il fait également le répertoire.
http://pastebin.com/g9J6RxW1
Puis tout ce que vous devez faire dans la fonction de contrôleur est organiser vos fichiers dans la un ensemble, d'où le nom du champ et la clé de la matrice de touches et la config est dans les données. Dans vous affaire à quelque chose comme ceci:
SI tous les fichiers de configs sont les mêmes, il suffit de faire une boucle for pour cela, il prendra également nommé clés", c'est à dire.
$project_files['files']['file_key']
.puis il suffit d'appeler:
Je ne peux pas commenter pourtant, à cause de ma réputation, mais aussi au niveau de Zoom a fait un commentaire en vertu de la accepté de répondre au sujet de l' $fieldname variable d'un tableau qui a provoqué une erreur. J'ai eu le même problème avec cette réponse et a trouvé que c'était parce que j'avais ajouté tous mes fichier de noms d'entrée sur la forme avec [] qui fait php ramasser les entrées d'un tableau de variables. Pour résoudre ce problème il suffit de donner à chaque fichier d'entrée d'un nom unique au lieu d'en faire un tableau PHP. Après je l'ai fait, la question d'aller loin pour moi et pour la accepté de répondre a travaillé comme un charme. Juste pensé que je ferais passer l'info pour quelqu'un d'autre qui bute sur ce problème.
Je pense que vous avez raté cette:
Pensé que j'ai vu cette même question exacte ici 😉
Essayer de la sortie d' $this->télécharger>display_errors() lorsque vous êtes en l'incrémentant le $variable d'erreur. Qui va vous dire exactement ce qui s'est passé. Mon argent sur les autorisations...
J'ai modifié le Cube de l'Œil MY_upload pour renvoyer le fichier d'informations de tous les fichiers téléchargés. Comme il était, seul le dernier fichier de renseignements, n'était pas accessible lors de l'appel de la méthode de données. J'ai aussi ajouté l'adresse IP de l'uploader à cette liste.
http://pastebin.com/tG8A85gY
Il peut être utilisé par le texte suivant:
Je réalise que ce serait mieux comme un edit pour en Cube les Yeux, mais c'est mon premier post, je n'ai pas de réputation.
Pour la simplicité,j'ai créé ce CI helper fichier.Vous pouvez charger à partir du fichier de configuration & utiliser n'importe où dans votre projet.Il suffit de prendre 3 patrameters
@fileobject = nom de fichier HTML de l'objet
@fileopath = chemin de fichier que vous souhaitez télécharger
@filetypes = par défaut *,ex- 'jpg|png|mp4|pdf
Testé & prouvé.