PDA

View Full Version : uploading and displaying photos


ABC123

Jay Talbott
09-30-2009, 10:16 AM
I am sorry to be a bit dense about this, but I cannot quite connect all of the dots.
I can upload a file, change its name, but cannot quite get it into the dbf correctly. I am using the following:

<html>
<%a5
dim session.suspectID as c
dim msg as c = ""
if eval_valid("cmd")
dim t as p
dim vc_filename as c
vc_filename = session.suspectID+"_"
vc_filename = vc_filename+time("0h0m0s3")+right(FileToUpload.filename,4)
file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename, FileToUpload.data)
t = table.open("suspect_photos")
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(vc_filename)
t.enter_end()
t.close()
'FileToUpload.filename
msg = "<a href=\"/" + FileToUpload.filename + "\" target=\"_blank\">" + FileToUpload.filename + "</a> was uploaded as "+vc_filename+"<br /><br />"
end if
%>
<head>
<title>File Upload example</title>
</head>
<body bgcolor="#ffffff">
<%a5 ? msg %>
<form action=" <%a5 ? request.script_name %> " method="post" enctype="multipart/form-data">
<input type="file" name="FileToUpload" ><br >
<input type="submit" name="cmd" value="Upload File">
</form>
<%a5
?"Suspect ID is:"+session.suspectID
%>
</body>
</html>

The photo_name field is an image reference file. When I upload the photo, a record is created, but in the control panel there appears to be nothing in the photo_name field. When I create a grid based on the table, the image does not appear in the grid, just an x in the upper left corner. However, the properties is pointing to the session folder. But I don't believe it should be pointing there, it should be pointing to the images subfolder.

What am I not understanding?
Thanks.
Jay

Steve Workings
09-30-2009, 11:04 AM
Try:


t.Photo_Name = vc_filename

All you need is the name of the file, then you use that for your grid's link.

Jay Talbott
10-01-2009, 05:02 PM
Steve,
Thanks for the quick response.
I tried your suggestion without any luck, but was able to accomplish the issue by using this line:

t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename)

Thanks again.
Jay

Jay Talbott
10-20-2009, 10:58 PM
And for the next part of the program, I would like to put the coding in a grid component to upload a particular individual's picture and automatically associate the picture with the individual.
I can do that on a form with the following code:

<html>
<%a5
dim session.suspectID as c
dim msg as c = ""
if eval_valid("cmd")
dim t as p
dim vc_filename as c
vc_filename = session.suspectID+"_"
vc_filename = vc_filename+time("0h0m0s3")+right(FileToUpload.filename,4)
file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename, FileToUpload.data)
t = table.open("suspect_photos")
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename)
t.enter_end()
t.close()
'FileToUpload.filename
msg = "<a href=\"/" + FileToUpload.filename + "\" target=\"_blank\">" + FileToUpload.filename + "</a> was uploaded as "+vc_filename+"<br /><br />"
end if
%>
<head>
<title>File Upload example</title>
</head>
<body bgcolor="#ffffff">
<%a5 ? msg %>
<form action=" <%a5 ? request.script_name %> " method="post" enctype="multipart/form-data">
<input type="file" name="FileToUpload" ><br >
<input type="submit" name="cmd" value="Upload File">
</form>
<%a5
?"Suspect ID is:"+session.suspectID
%>
</body>
</html>

I have tried various combinations in the grid component without any luck. The grid turns to garbage when I try.
What am I missing?
Thanks.
Jay

tommyrotten
11-30-2009, 03:09 PM
Any luck on this?


And for the next part of the program, I would like to put the coding in a grid component to upload a particular individual's picture and automatically associate the picture with the individual.
I can do that on a form with the following code:

<html>
<%a5
dim session.suspectID as c
dim msg as c = ""
if eval_valid("cmd")
dim t as p
dim vc_filename as c
vc_filename = session.suspectID+"_"
vc_filename = vc_filename+time("0h0m0s3")+right(FileToUpload.filename,4)
file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename, FileToUpload.data)
t = table.open("suspect_photos")
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename)
t.enter_end()
t.close()
'FileToUpload.filename
msg = "<a href=\"/" + FileToUpload.filename + "\" target=\"_blank\">" + FileToUpload.filename + "</a> was uploaded as "+vc_filename+"<br /><br />"
end if
%>
<head>
<title>File Upload example</title>
</head>
<body bgcolor="#ffffff">
<%a5 ? msg %>
<form action=" <%a5 ? request.script_name %> " method="post" enctype="multipart/form-data">
<input type="file" name="FileToUpload" ><br >
<input type="submit" name="cmd" value="Upload File">
</form>
<%a5
?"Suspect ID is:"+session.suspectID
%>
</body>
</html>

I have tried various combinations in the grid component without any luck. The grid turns to garbage when I try.
What am I missing?
Thanks.
Jay

Jay Talbott
11-30-2009, 05:21 PM
No, so I am doing it on an .a5w page that opens in a javascript window when I click a button.
The page has the following code:

<html>
<%a5
dim session.suspectID as c
dim session.__protected_suspectID as c
dim msg1 as c = ""
dim msg2 as c = ""
dim msg3 as c = ""
if eval_valid("cmd")
dim t as p
dim vc_filename1 as c
dim vc_filename2 as c
dim vc_filename3 as c
vc_filename1 = session.suspectID+"_"
vc_filename2 = session.suspectID+"_"
vc_filename3 = session.suspectID+"_"

vc_filename1 = vc_filename1+time("0h0m0s1")+right(FileToUpload1.filename,4)
vc_filename2 = vc_filename2+time("0h0m0s2")+right(FileToUpload1.filename,4)
vc_filename3 = vc_filename3+time("0h0m0s3")+right(FileToUpload1.filename,4)

file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename1, FileToUpload1.data)
file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename2, FileToUpload2.data)
file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename3, FileToUpload3.data)

dim vn_files_uploaded as n
vn_files_uploaded = 0

t = table.open("suspect_photos")
if FileToUpload1.data <>""
vn_files_uploaded = vn_files_uploaded + 1
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename1)
t.enter_end()
end if
if FileToUpload2.data <>""
vn_files_uploaded = vn_files_uploaded + 1
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename2)
t.enter_end()
end if
if FileToUpload3.data <>""
vn_files_uploaded = vn_files_uploaded + 1
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename3)
t.enter_end()
end if
t.close()

msg1 = "File(s) uploaded successfully: "+vn_files_uploaded

end if
%>
<head>
<title>File Upload example</title>
</head>
<body bgcolor="#ffffff">
<%a5 ? msg1 %>
<div="FILE_BOXES">
<form action=" <%a5 ? request.script_name %> " method="post" enctype="multipart/form-data">
<input type="file" size="75" name="FileToUpload1" ><br >
<input type="file" size="75" name="FileToUpload2" ><br >
<input type="file" size="75" name="FileToUpload3" ><br >
<input type="submit" name="cmd" value="Upload File">
</form>
<div></div>
<br>
<br>

</body>
</html>


Hope this helps.
Jay

peteconway
11-30-2009, 07:11 PM
I just pasted your code into the editor and run it. I got this error..
C:\A5Webroot\image_map\images\_095201774.png"

Now I expected an error as I had not done anything to the code but there is something you need to understand if you are using image reference fields in the table.

Like the table, the image does not reside in the webroot, it resides on the server in your development folder, so if you database was called catchthem.adb and was in a folder called thelaw you would have a sub folder in thelaw called images
c:\thelaw\images under images you would have a folder called suspects
c:\thelaw\images\suspects you need to upload to that folder, not the webroot, images contained in irf's in tables do not get published, they get delivered to the grid just like data.

This is a recent and possibly undocumented feature of V10 but I have been very close to its development during beta testing. it really works well.
One more thing, fact is you cannot show an image in a grid immediately you upload it from a table, you need to trick he grid by having two tables, one with the data and one with the image and a relationship field, the grid needs to be based on a view, not a table, join the two tables, select the fields you want in the grid from your master table and the image from the image table.

When you upload the image and save, alpha will display the image as the image table has changed in the view settings and forced a refresh.

Good luck with your projects.

Jay Talbott
11-30-2009, 08:37 PM
Thanks, Peter. That is very helpful.
Jay

tommyrotten
12-02-2009, 12:03 AM
Pete or Jay,

So with what you are saying about putting pictures in their own folder on the server would the code look like this?



file.from_blob(thelaw\images\suspects + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename1, FileToUpload1.data)

peteconway
12-02-2009, 01:03 AM
YES, as long as thelaw folder is in the same folder as the database folder e.g. where the .adb file resides. NOT IN THE WEB ROOT. Another way to say it the folder images\thelaw\.. must reside in the same foders the table is in.

tommyrotten
01-28-2010, 12:03 AM
Jay, is "session.suspectID" the way you are connecting the file to the record?
(i.e.) session.suspectID would be the unique ID field from your grid that is passed to the .a5w page that you open in a java window via a button?


No, so I am doing it on an .a5w page that opens in a javascript window when I click a button.
The page has the following code:


<html>
<%a5
dim session.suspectID as c
dim session.__protected_suspectID as c
dim msg1 as c = ""
dim msg2 as c = ""
dim msg3 as c = ""
if eval_valid("cmd")
dim t as p
dim vc_filename1 as c
dim vc_filename2 as c
dim vc_filename3 as c
vc_filename1 = session.suspectID+"_"
vc_filename2 = session.suspectID+"_"
vc_filename3 = session.suspectID+"_"

vc_filename1 = vc_filename1+time("0h0m0s1")+right(FileToUpload1.filename,4)
vc_filename2 = vc_filename2+time("0h0m0s2")+right(FileToUpload1.filename,4)
vc_filename3 = vc_filename3+time("0h0m0s3")+right(FileToUpload1.filename,4)

file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename1, FileToUpload1.data)
file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename2, FileToUpload2.data)
file.from_blob(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename3, FileToUpload3.data)

dim vn_files_uploaded as n
vn_files_uploaded = 0

t = table.open("suspect_photos")
if FileToUpload1.data <>""
vn_files_uploaded = vn_files_uploaded + 1
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename1)
t.enter_end()
end if
if FileToUpload2.data <>""
vn_files_uploaded = vn_files_uploaded + 1
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename2)
t.enter_end()
end if
if FileToUpload3.data <>""
vn_files_uploaded = vn_files_uploaded + 1
t.enter_begin()
t.Suspectid = session.suspectID
t.Photo_Name = image_filename_encode(ServerSetting.Document_Root + "\\" + "image_map" + "\\"+ "images" +"\\" + vc_filename3)
t.enter_end()
end if
t.close()

msg1 = "File(s) uploaded successfully: "+vn_files_uploaded

end if
%>
<head>
<title>File Upload example</title>
</head>
<body bgcolor="#ffffff">
<%a5 ? msg1 %>
<div="FILE_BOXES">
<form action=" <%a5 ? request.script_name %> " method="post" enctype="multipart/form-data">
<input type="file" size="75" name="FileToUpload1" ><br >
<input type="file" size="75" name="FileToUpload2" ><br >
<input type="file" size="75" name="FileToUpload3" ><br >
<input type="submit" name="cmd" value="Upload File">
</form>
<div></div>
<br>
<br>

</body>
</html>

Hope this helps.
Jay

Jay Talbott
01-31-2010, 05:10 PM
Tommy,
That is my intent, and I think the answer is here:

http://msgboard.alphasoftware.com/alphaforum/showthread.php?t=74500

tommyrotten
02-03-2010, 12:44 AM
Got it. Thank you.

It seems that once again I was searching on the wrong text.