J'ai une application qui prend l'URL et renvoie un fichier correspondant à celui-ci. Je voulais le pousser sur Heroku mais je reçois cette erreur:
** Fichier "/app/server.py", ligne 1525, dans Upload1 filenotfounderror: [errno 2] Aucun fichier ou répertoire de ce type: 'Favicon.ico' ** P > Puis j'ai essayé d'ajouter Favicon.ico dans tous les dossiers et je reçois p> ** Fichier "/app/server.py", ligne 1525, dans Upload1 P> < Pré> xxx pré> notadirectoryError: [errno 20] Pas un répertoire: 'favicon.ico' ** p> la partie où elle cherche à la lutte est p>
3 Réponses :
Ce que vous pouvez faire est, vous devez définir Vous pouvez obtenir plus d'informations de ici P > upload_folder code> chemin dans CONFIG comme. P>
upload_folder = "Votre nom de dossier" code>
Ensuite, vous pouvez obtenir le chemin de fichier comme.
p>
file_path = os.path.abspath (os.path.join (app.config ["upload_folder"], nom de fichier)) code> p>
Je vois, mais comment pourrais-je télécharger le fichier dans le dossier sans connaître son nom? Le problème est que je ne peux pas utiliser OS.ListDir. Votre solution semble avoir à connaître le nom du fichier que nous voulons télécharger
Avez-vous vérifié le lien que j'ai partagé
Et connaissez-vous le nom du dossier? Ou vous cherchez dans chaque dossier?
Oui, je connais le nom du dossier mais pas le nom de fichier à l'intérieur de celui-ci. (Il n'y a qu'un seul fichier dans le dossier) et oui, j'ai vérifié le lien et on dirait qu'il a besoin de nom de fichier et de fenteName.
Ok, et vous choisissez le nom de fichier d'un itinéraire, non? Votre itinéraire peut avoir du nom de fichier comme vous avez mentionné `@ app.Route ('/
oh j'ai écrit le nom de fichier mais c'est le nom de folder, mon mauvais
Oui, j'ai ajouté une autre réponse pour vous, n'oubliez pas d'accepter la réponse si elle aide: D
Non, je ne voulais pas dire cela de cette façon désolé, je voulais dire que j'ai écrit le nom de fichier dans mon code, mais cela reçoit un nom de dossier et je ne reçois pas de nom de fichier. Pardon. J'ai édité ma question initiale
Essayez si cela fonctionne folder_path = os.path.abspath (foldername) music = os.listdir (folder_path)
@app.route('/<path:foldername>') def upload1(foldername): abs_path = os.path.abspath(foldername) music = os.listdir(abs_path) path_to_file = os.path.join(abs_path, music[0]) return send_file( foldername+"/"+path_to_file, mimetype="audio/mp3", as_attachment=True, attachment_filename=path_to_file ) it will first take the foldername from param and then convert into abspath. then listdir would list all the files, then it will take first file from list and join path.
@Falseee j'ai mis à jour la réponse, cela fonctionnerait! :). La seule chose est votre dossier devrait être dans le répertoire racine.
Oui, ça fait :) Le mien fait aussi, j'ai juste oublié d'ajouter le / (myfileName) après l'URL ... je suis tellement stupide. Merci
OK, je me sens stupide en ce moment. Le problème est que lorsque je l'ai fait Heroku ouvert, j'ai eu l'erreur instantanément. Mais je l'ai eu parce que je n'ai rien ajouté après l'URL (afin que le code ne fonctionnerait évidemment pas) p>