Frasco: error IOError al guardar archivos cargados

Estoy aprendiendo a Flask y estoy intentando trabajar con el patrón de carga de archivos documentado aquí: http://flask.pocoo.org/docs/patterns/fileuploads/ . Estoy trabajando en Firefox 12 en Windows 7 y estoy ejecutando mi aplicación en modo de depuración en mi máquina local.

Estoy copiando el ejemplo textualmente, excepto por el valor de la variable UPLOAD_FOLDER, que he definido como UPLOAD_FOLDER = '/uploads' y he creado un directorio llamado “uploads” que está presente en la raíz de la aplicación (junto con la estática y la plantilla directorios).

Al cargar el archivo, recibo el error: IOError: [Errno 2] No such file or directory: '/uploads\\u.png'

Curiosamente, si especifico una cadena en bruto para la carpeta de cargas que apunta directamente a las cargas directamente en mi máquina como UPLOAD_FOLDER = r'C:\Python27\projects\Flask\myproject\uploads' , todo funciona bien.

¿No estoy especificando el directorio de la manera correcta? ¿Debería colocarse el directorio de cargas en otro lugar?

La barra al principio de ‘/ uploads’ hace que la especificación de la ruta sea absoluta: la barra al principio representa la raíz de la jerarquía del sistema de archivos. Si bien eso podría no ser exactamente cómo funcionan las cosas en Windows, tiene sentido que Python lo entienda de esta manera, ya que sus funciones de manejo de rutas son multiplataforma.

Los formularios ‘uploads /’ y ‘./uploads/’ son equivalentes y son relativos.

Tenga en cuenta que las rutas relativas son relativas al directorio actual, que no necesariamente controla, por lo que es posible que desee especificar una ruta absoluta para UPLOAD_FOLDER.

Por qué no intentar esto, funciona para mí.

 APP_ROOT = os.path.dirname(os.path.abspath(__file__)) UPLOAD_FOLDER = os.path.join(APP_ROOT, 'static/uploads') app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER