Las imágenes de Ajax no se muestran

Tengo una base de datos mysql que almacena las rutas de algunas imágenes en una unidad de red.

Pensé que al usar Ajax, podría generar etiquetas de imagen dinámicamente para mostrar estas imágenes en el navegador, ya que cada etiqueta de imagen invocaba una nueva solicitud GET con la ruta relativa al navegador.

El servidor web tiene un disco duro pequeño y no quiero tener que duplicar todo, por lo que no puedo almacenar una gran cantidad de imágenes en el servidor.

Mi PHP parece generar las etiquetas de imagen correctamente, sin embargo, el navegador no muestra las imágenes.

Código PHP:

$sql = "SELECT ID,Link FROM tblStorePictures  WHERE StoreNumber = $sto";

$result = mysql_query($sql,$dblink) or die(mysql_error());
$row = mysql_fetch_array($result);

$id = $row['ID'];
echo "<img src='file://".$row['Link']."' alt='Image' id=$id>";

Las etiquetas de imagen (como se ven en firebug) terminan luciendo así:

<img id="57" alt="Image" src="file://x:/Image1.jpg">

He intentado varias cosas pero nada funciona:

  1. Generando dinámicamente las etiquetas de imagen con javascript usando el método document.createElement ("img") y estableciendo atributos para la fuente, etc.

  2. Usando javascript para configurar innerHTML.

En todos los casos, tengo las etiquetas para generar correctamente, pero todavía no veo nada en el navegador más que el texto alternativo.

Cualquier sugerencia de bienvenida.

preguntado el 10 de mayo de 11 a las 13:05

Es posible que esto solo funcione en una configuración al ver el archivo desde su computadora local, pero estoy bastante seguro de que Apache no admite este tipo de ubicaciones de imágenes y deben ser parte de la carpeta wwwroot / www / public_html de su sitio web. La única forma en que esto funcionaría es cargando la imagen usando PHP y mostrándola después. -

¿Es "file: // x: /Image1.jpg" una URL válida? si pones eso en tu navegador, ¿obtienes la imagen? - ¿Asume que todos los navegadores de su cliente tendrán acceso a file: // x: en sus computadoras? -

@regilero todos en la red tienen las mismas unidades asignadas, por lo que todos los clientes deberían poder acceder a las imágenes. Los URI de las imágenes son todos válidos. -

Creo que está utilizando un software de Dreamweaver que, de forma predeterminada, proporciona las URL de este archivo, y el usuario anterior no conoce la diferencia entre en vivo y local.

2 Respuestas

Lo que enfrenta es una característica de seguridad de su navegador. De hecho, su navegador no seguirá enlaces a páginas web locales (significa file:// urls) porque la página que estás viendo no es local (no estás en file://.../.../page.html). Por lo tanto, el navegador ve un sitio web en la red que intenta acceder a un archivo en su disco duro y niega el acceso a él por razones obvias.

contestado el 10 de mayo de 11 a las 21:05

Investigaciones posteriores han demostrado que esto es correcto. Agregué algunas líneas a user.js en el perfil de Firefox para permitir que funcione, pero todos los demás navegadores (aparte de IE) no lo permitirán. Gracias por tu ayuda. - user468562

No es un problema con AJAX, sino un problema con el enlace al archivo. Casi puedo garantizar que su enlace es incorrecto de alguna manera. Si ingresa el enlace exacto del archivo "file: // x: /Image1.jpg" en la URL archivada del navegador, y no aparece nada, demuestra que hay un problema con los enlaces de sus archivos.

contestado el 10 de mayo de 11 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.