html form upload file using browse

I have a long form that allows a user to upload an image.

There is a lot of validation required and if a users input does not validate an error message is printed and the form is refreshed with all the input entered so far.

So far so good.

the input in the upload image 'browse' is lost when the form is refreshed.

Where can I find this info so I can reprint what was previously entered?
Who is Participating?
rdivilbissConnect With a Mentor Commented:
If you look at the data from a for upload (say using Live HTTP Headers for FF) you'll see the name-value pairs passed in clear text followed by a form multipart line, then the BASE64 encoded contents of the file the user chose to upload via your form.

You'll get the filename as well.

From the aspect of manipulating what is displayed on the user's browser, you can use script to manipulate nearly every aspect of the page "EXCEPT" a file control.  It isn't that you cant see the filename once it is uploaded, but you have no way of filling a file field with any data, even if your purpose is simply to redisplay what the user already chose.

That is the protocol for the file field as specified by the W3C and is how all browsers implemented the field.
You have no access to that information in any modern browser, sorry.  If you could access that directly you could upload ANY file from the user's computer without their permission.
Loganathan NatarajanLAMP DeveloperCommented:
Yes, it is too complex to do that on this condition. better try to use AJAX to avoid the page refresh OR when you submit try to upload the files and display them near the control it is uploaded ... facility to remove / confirm to upload ... something like,.,
Easily Design & Build Your Next Website

Squarespace’s all-in-one platform gives you everything you need to express yourself creatively online, whether it is with a domain, website, or online store. Get started with your free trial today, and when ready, take 10% off your first purchase with offer code 'EXPERTS'.

Loganathan NatarajanLAMP DeveloperCommented:
>> Where can I find this info so I can reprint what was previously entered?

you cannot reprint to the control ., but you can get the value / name selected the files and display them
Or do an initial validation in JavaScript before your server side checks.

Also watch out for echoing user input back to the your form for XSS.
rwhubbard996Author Commented:
I was trying to be so clear with my question, sorry not sure I was.

I haven't used the 'browse'  function before and feeling the pressure of a deadline posted the question hoping for a simple solution.

Now at the start of the day and after reading the comments I started thinking (always good for a developer to think :-) ).

The 'browse' is a javascript function? I'm, thinking it must be a client side script of some sort to see the users files.  The information that gets printed in the window, the file name and path, is partially visible in the $_FILE array.  I can access the file name but not the path.

Right now I'm not in a position to dissect the inner workings of this function.  

My guess is if I can grab the path and file name I can put it back in the text field of the form so the user doesn't  have to enter it again.

After reading the comments I'm doubting my 'guess'.  The client server divide may prevent what seemed simple at first glance.

Any further clarification would be appreciated.

rwhubbard996Author Commented:
Thanks, that really clarifies the issue!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.