no se puede llenar un input file por defecto, yo tengo una solucion a eso con javascript primero tengo un archivo que sube la imagen hasta ahi todo bien, pero en el archivo que modifica el registro hago lo siguiente.
Código PHP:
<tr>
<td class="celda4" align="right" valign="top">
<p class="style">Link de la imagen:</p>
</td>
<td class="celda3" align="left" valign="top" >
<input type="text" name="imagen" id="text" value="<?php echo $reg['imagen'];?>" size="40" />
</td>
</tr>
<tr>
<td class="celda4" align="right" valign="top">
<p class="style">Subir imagen</p>
</td>
<td class="celda3" align="left" valign="top" >
<input type="file" name="upload" id="file" disabled="disabled"/>
<input name="checkbox1" type="checkbox" id="checkbox1" onChange="document.form1.text.disabled = true; document.form1.file.disabled = false; text.disabled = this.checked; file.disabled = !this.checked;" value="checkbox"/>
</td>
</tr>
lo que hace este código es tener dos campos uno text y otro file de este modo la información de la base de datos llega asi
de este modo el script habilita uno y deshabilita el otro, de este modo si ya tienes una imagen subida, toma la ruta que tiene la imagen y no altera nada a menos que habilites el file y quieras subir una nueva imagen.