ASP.net image resizing
- itHighway
- Newbie


- Joined: Jan 27, 2008
- Posts: 7
- Status: Offline
- Anonymous
- Bot


- Joined: 25 Feb 2008
- Posts: ?
- Loc: Ozzuland
- Status: Online
April 4th, 2008, 9:37 pm
- righteous_trespasser
- Scuffle


- Joined: Mar 12, 2007
- Posts: 6228
- Loc: South-Africa
- Status: Offline
This is a page that does exactly that ... you can set the maximum image size (width and height) and then it saves both the original and the resized one on the server ...
Code: [ Select ]
<%@ Page Trace="False" Language="vb" aspcompat="false" debug="true" validateRequest="false"%>
<%@ Import Namespace=System.Drawing %>
<%@ Import Namespace=System.Drawing.Imaging %>
<%@ Import Namespace=System %>
<%@ Import Namespace=System.Web %>
<SCRIPT LANGUAGE="VBScript" runat="server">
Const Lx = 173 ' max width for thumbnails
Const Ly = 234 ' max height for thumbnails
Const upload_dir = "images/" ' directory to upload file
Const upload_original = "big" ' filename to save original as (suffix added by script)
Const upload_thumb = "small" ' filename to save thumbnail as (suffix added by script)
Const upload_max_size = 5000 ' max size of the upload (KB) note: this doesn't override any server upload limits
Dim fileExt ' used to store the file extension (saves finding it mulitple times)
Dim newWidth, newHeight As Integer ' new width/height for the thumbnail
Dim l2 ' temp variable used when calculating new size
Dim fileFld As HttpPostedFile ' used to grab the file upload from the form
Dim originalimg As System.Drawing.Image ' used to hold the original image
Dim msg ' display results
Dim upload_ok As Boolean ' did the upload work ?
</script>
<%
Randomize() ' used to help the cache-busting on the preview images
upload_ok = False
If LCase(Request.ServerVariables("REQUEST_METHOD")) = "post" Then
fileFld = Request.Files(0) ' get the first file uploaded from the form (note:- you can use this to itterate through more than one image)
If fileFld.ContentLength > upload_max_size * 1024 Then
msg = "Sorry, the image must be less than " & upload_max_size & "Kb"
Else
Try
originalimg = System.Drawing.Image.FromStream(fileFld.InputStream)
' work out the width/height for the thumbnail. Preserve aspect ratio and honour max width/height
' Note: if the original is smaller than the thumbnail size it will be scaled up
If (originalimg.Width / Lx) > (originalimg.Width / Ly) Then
l2 = originalimg.Width
newWidth = Lx
newHeight = originalimg.Height * (Lx / l2)
If newHeight > Ly Then
newWidth = newWidth * (Ly / newHeight)
newHeight = Ly
End If
Else
l2 = originalimg.Height
newHeight = Ly
newWidth = originalimg.Width * (Ly / l2)
If newWidth > Lx Then
newHeight = newHeight * (Lx / newWidth)
newWidth = Lx
End If
End If
Dim thumb As New Bitmap(newWidth, newHeight)
'Create a graphics object
Dim gr_dest As Graphics = Graphics.FromImage(thumb)
' just in case it's a transparent GIF force the bg to white
Dim sb = New SolidBrush(System.Drawing.Color.White)
gr_dest.FillRectangle(sb, 0, 0, thumb.Width, thumb.Height)
'Re-draw the image to the specified height and width
gr_dest.DrawImage(originalimg, 0, 0, thumb.Width, thumb.Height)
Try
fileExt = System.IO.Path.GetExtension(fileFld.FileName).ToLower()
originalimg.Save(Server.MapPath(upload_dir & TextBoxFileName.Text.ToString & "-" & upload_original & fileExt), originalimg.RawFormat)
thumb.Save(Server.MapPath(upload_dir & TextBoxFileName.Text.ToString & "-" & upload_thumb & fileExt), originalimg.RawFormat)
msg = "Uploaded " & fileFld.FileName & " to " & Server.MapPath(upload_dir & upload_original & fileExt)
upload_ok = True
Catch ex As Exception
msg = "Sorry, there was a problem saving the image."
End Try
' Housekeeping for the generated thumbnail
If Not thumb Is Nothing Then
thumb.Dispose()
thumb = Nothing
End If
Catch
msg = "Sorry, that was not an image we could process."
End Try
End If
' House Keeping !
If Not originalimg Is Nothing Then
originalimg.Dispose()
originalimg = Nothing
End If
End If
%>
<html>
<head>
<title>ASP.NET File Upload and Resize Sample</title>
<META NAME="Description" CONTENT="ASP.NET File Upload and Resize Sample (Hybrid VB.NET)">
<META NAME="Keywords" CONTENT="ASP.NET, ASP, NET, VB, VBScript, Image, Upload, Resize, Thumbnail, Constrain, Filesize, File, Size, Free">
<META NAME="Copyright" CONTENT="Rufan-Redi Pty Ltd 2005">
<META NAME="Author" CONTENT="System developed by Jeremy at http://www.Rufan-Redi.com">
</head>
<body>
<p><b>Hybrid ASP.NET File Upload and Resize Sample (VB.NET)</b>
<br>Upload and resize a GIP/JPG/PNG images, ensuring filesizes are optimum.</p>
<form id="Form1" enctype="multipart/form-data" method="post" runat="server">
<table>
<tr><td>Select the file to upload:</td><td><input type="file" name="upload_file"></td></tr>
<tr>
<td colspan="2" style="height: 19px">
New FileName:
<asp:TextBox ID="TextBoxFileName" runat="server"></asp:TextBox></td>
</tr>
<tr><td colspan=2>Max upload size <%=upload_max_size%>Kb, gif/jpg/png only. The image will be saved as "New FileName-small" and
"New FileName-big" accordingly. Just make sure that the original image is 260px
x 351px big</td></tr>
<tr><td colspan=2><input type="submit" value="Upload" id="Submit1" language="javascript" onclick="return Submit1_onclick()">
</table>
</form>
<%
If upload_ok Then
%>
<table>
<tr>
<td valign=top><img src="<%=upload_dir & TextBoxFileName.Text.ToString & "-" & upload_original & fileExt & "?" & rnd()%>"></td>
<td valign=top><img src="<%=upload_dir & TextBoxFileName.Text.ToString & "-" & upload_thumb & fileExt & "?" & rnd()%>"></td>
</tr>
</table>
<%
Else
Response.Write(msg)
End If
%>
</body>
</html>
<%@ Import Namespace=System.Drawing %>
<%@ Import Namespace=System.Drawing.Imaging %>
<%@ Import Namespace=System %>
<%@ Import Namespace=System.Web %>
<SCRIPT LANGUAGE="VBScript" runat="server">
Const Lx = 173 ' max width for thumbnails
Const Ly = 234 ' max height for thumbnails
Const upload_dir = "images/" ' directory to upload file
Const upload_original = "big" ' filename to save original as (suffix added by script)
Const upload_thumb = "small" ' filename to save thumbnail as (suffix added by script)
Const upload_max_size = 5000 ' max size of the upload (KB) note: this doesn't override any server upload limits
Dim fileExt ' used to store the file extension (saves finding it mulitple times)
Dim newWidth, newHeight As Integer ' new width/height for the thumbnail
Dim l2 ' temp variable used when calculating new size
Dim fileFld As HttpPostedFile ' used to grab the file upload from the form
Dim originalimg As System.Drawing.Image ' used to hold the original image
Dim msg ' display results
Dim upload_ok As Boolean ' did the upload work ?
</script>
<%
Randomize() ' used to help the cache-busting on the preview images
upload_ok = False
If LCase(Request.ServerVariables("REQUEST_METHOD")) = "post" Then
fileFld = Request.Files(0) ' get the first file uploaded from the form (note:- you can use this to itterate through more than one image)
If fileFld.ContentLength > upload_max_size * 1024 Then
msg = "Sorry, the image must be less than " & upload_max_size & "Kb"
Else
Try
originalimg = System.Drawing.Image.FromStream(fileFld.InputStream)
' work out the width/height for the thumbnail. Preserve aspect ratio and honour max width/height
' Note: if the original is smaller than the thumbnail size it will be scaled up
If (originalimg.Width / Lx) > (originalimg.Width / Ly) Then
l2 = originalimg.Width
newWidth = Lx
newHeight = originalimg.Height * (Lx / l2)
If newHeight > Ly Then
newWidth = newWidth * (Ly / newHeight)
newHeight = Ly
End If
Else
l2 = originalimg.Height
newHeight = Ly
newWidth = originalimg.Width * (Ly / l2)
If newWidth > Lx Then
newHeight = newHeight * (Lx / newWidth)
newWidth = Lx
End If
End If
Dim thumb As New Bitmap(newWidth, newHeight)
'Create a graphics object
Dim gr_dest As Graphics = Graphics.FromImage(thumb)
' just in case it's a transparent GIF force the bg to white
Dim sb = New SolidBrush(System.Drawing.Color.White)
gr_dest.FillRectangle(sb, 0, 0, thumb.Width, thumb.Height)
'Re-draw the image to the specified height and width
gr_dest.DrawImage(originalimg, 0, 0, thumb.Width, thumb.Height)
Try
fileExt = System.IO.Path.GetExtension(fileFld.FileName).ToLower()
originalimg.Save(Server.MapPath(upload_dir & TextBoxFileName.Text.ToString & "-" & upload_original & fileExt), originalimg.RawFormat)
thumb.Save(Server.MapPath(upload_dir & TextBoxFileName.Text.ToString & "-" & upload_thumb & fileExt), originalimg.RawFormat)
msg = "Uploaded " & fileFld.FileName & " to " & Server.MapPath(upload_dir & upload_original & fileExt)
upload_ok = True
Catch ex As Exception
msg = "Sorry, there was a problem saving the image."
End Try
' Housekeeping for the generated thumbnail
If Not thumb Is Nothing Then
thumb.Dispose()
thumb = Nothing
End If
Catch
msg = "Sorry, that was not an image we could process."
End Try
End If
' House Keeping !
If Not originalimg Is Nothing Then
originalimg.Dispose()
originalimg = Nothing
End If
End If
%>
<html>
<head>
<title>ASP.NET File Upload and Resize Sample</title>
<META NAME="Description" CONTENT="ASP.NET File Upload and Resize Sample (Hybrid VB.NET)">
<META NAME="Keywords" CONTENT="ASP.NET, ASP, NET, VB, VBScript, Image, Upload, Resize, Thumbnail, Constrain, Filesize, File, Size, Free">
<META NAME="Copyright" CONTENT="Rufan-Redi Pty Ltd 2005">
<META NAME="Author" CONTENT="System developed by Jeremy at http://www.Rufan-Redi.com">
</head>
<body>
<p><b>Hybrid ASP.NET File Upload and Resize Sample (VB.NET)</b>
<br>Upload and resize a GIP/JPG/PNG images, ensuring filesizes are optimum.</p>
<form id="Form1" enctype="multipart/form-data" method="post" runat="server">
<table>
<tr><td>Select the file to upload:</td><td><input type="file" name="upload_file"></td></tr>
<tr>
<td colspan="2" style="height: 19px">
New FileName:
<asp:TextBox ID="TextBoxFileName" runat="server"></asp:TextBox></td>
</tr>
<tr><td colspan=2>Max upload size <%=upload_max_size%>Kb, gif/jpg/png only. The image will be saved as "New FileName-small" and
"New FileName-big" accordingly. Just make sure that the original image is 260px
x 351px big</td></tr>
<tr><td colspan=2><input type="submit" value="Upload" id="Submit1" language="javascript" onclick="return Submit1_onclick()">
</table>
</form>
<%
If upload_ok Then
%>
<table>
<tr>
<td valign=top><img src="<%=upload_dir & TextBoxFileName.Text.ToString & "-" & upload_original & fileExt & "?" & rnd()%>"></td>
<td valign=top><img src="<%=upload_dir & TextBoxFileName.Text.ToString & "-" & upload_thumb & fileExt & "?" & rnd()%>"></td>
</tr>
</table>
<%
Else
Response.Write(msg)
End If
%>
</body>
</html>
- <%@ Page Trace="False" Language="vb" aspcompat="false" debug="true" validateRequest="false"%>
- <%@ Import Namespace=System.Drawing %>
- <%@ Import Namespace=System.Drawing.Imaging %>
- <%@ Import Namespace=System %>
- <%@ Import Namespace=System.Web %>
- <SCRIPT LANGUAGE="VBScript" runat="server">
- Const Lx = 173 ' max width for thumbnails
- Const Ly = 234 ' max height for thumbnails
- Const upload_dir = "images/" ' directory to upload file
- Const upload_original = "big" ' filename to save original as (suffix added by script)
- Const upload_thumb = "small" ' filename to save thumbnail as (suffix added by script)
- Const upload_max_size = 5000 ' max size of the upload (KB) note: this doesn't override any server upload limits
- Dim fileExt ' used to store the file extension (saves finding it mulitple times)
- Dim newWidth, newHeight As Integer ' new width/height for the thumbnail
- Dim l2 ' temp variable used when calculating new size
- Dim fileFld As HttpPostedFile ' used to grab the file upload from the form
- Dim originalimg As System.Drawing.Image ' used to hold the original image
- Dim msg ' display results
- Dim upload_ok As Boolean ' did the upload work ?
- </script>
- <%
- Randomize() ' used to help the cache-busting on the preview images
- upload_ok = False
- If LCase(Request.ServerVariables("REQUEST_METHOD")) = "post" Then
- fileFld = Request.Files(0) ' get the first file uploaded from the form (note:- you can use this to itterate through more than one image)
- If fileFld.ContentLength > upload_max_size * 1024 Then
- msg = "Sorry, the image must be less than " & upload_max_size & "Kb"
- Else
- Try
- originalimg = System.Drawing.Image.FromStream(fileFld.InputStream)
- ' work out the width/height for the thumbnail. Preserve aspect ratio and honour max width/height
- ' Note: if the original is smaller than the thumbnail size it will be scaled up
- If (originalimg.Width / Lx) > (originalimg.Width / Ly) Then
- l2 = originalimg.Width
- newWidth = Lx
- newHeight = originalimg.Height * (Lx / l2)
- If newHeight > Ly Then
- newWidth = newWidth * (Ly / newHeight)
- newHeight = Ly
- End If
- Else
- l2 = originalimg.Height
- newHeight = Ly
- newWidth = originalimg.Width * (Ly / l2)
- If newWidth > Lx Then
- newHeight = newHeight * (Lx / newWidth)
- newWidth = Lx
- End If
- End If
- Dim thumb As New Bitmap(newWidth, newHeight)
- 'Create a graphics object
- Dim gr_dest As Graphics = Graphics.FromImage(thumb)
- ' just in case it's a transparent GIF force the bg to white
- Dim sb = New SolidBrush(System.Drawing.Color.White)
- gr_dest.FillRectangle(sb, 0, 0, thumb.Width, thumb.Height)
- 'Re-draw the image to the specified height and width
- gr_dest.DrawImage(originalimg, 0, 0, thumb.Width, thumb.Height)
- Try
- fileExt = System.IO.Path.GetExtension(fileFld.FileName).ToLower()
- originalimg.Save(Server.MapPath(upload_dir & TextBoxFileName.Text.ToString & "-" & upload_original & fileExt), originalimg.RawFormat)
- thumb.Save(Server.MapPath(upload_dir & TextBoxFileName.Text.ToString & "-" & upload_thumb & fileExt), originalimg.RawFormat)
- msg = "Uploaded " & fileFld.FileName & " to " & Server.MapPath(upload_dir & upload_original & fileExt)
- upload_ok = True
- Catch ex As Exception
- msg = "Sorry, there was a problem saving the image."
- End Try
- ' Housekeeping for the generated thumbnail
- If Not thumb Is Nothing Then
- thumb.Dispose()
- thumb = Nothing
- End If
- Catch
- msg = "Sorry, that was not an image we could process."
- End Try
- End If
- ' House Keeping !
- If Not originalimg Is Nothing Then
- originalimg.Dispose()
- originalimg = Nothing
- End If
- End If
- %>
- <html>
- <head>
- <title>ASP.NET File Upload and Resize Sample</title>
- <META NAME="Description" CONTENT="ASP.NET File Upload and Resize Sample (Hybrid VB.NET)">
- <META NAME="Keywords" CONTENT="ASP.NET, ASP, NET, VB, VBScript, Image, Upload, Resize, Thumbnail, Constrain, Filesize, File, Size, Free">
- <META NAME="Copyright" CONTENT="Rufan-Redi Pty Ltd 2005">
- <META NAME="Author" CONTENT="System developed by Jeremy at http://www.Rufan-Redi.com">
- </head>
- <body>
- <p><b>Hybrid ASP.NET File Upload and Resize Sample (VB.NET)</b>
- <br>Upload and resize a GIP/JPG/PNG images, ensuring filesizes are optimum.</p>
- <form id="Form1" enctype="multipart/form-data" method="post" runat="server">
- <table>
- <tr><td>Select the file to upload:</td><td><input type="file" name="upload_file"></td></tr>
- <tr>
- <td colspan="2" style="height: 19px">
- New FileName:
- <asp:TextBox ID="TextBoxFileName" runat="server"></asp:TextBox></td>
- </tr>
- <tr><td colspan=2>Max upload size <%=upload_max_size%>Kb, gif/jpg/png only. The image will be saved as "New FileName-small" and
- "New FileName-big" accordingly. Just make sure that the original image is 260px
- x 351px big</td></tr>
- <tr><td colspan=2><input type="submit" value="Upload" id="Submit1" language="javascript" onclick="return Submit1_onclick()">
- </table>
- </form>
- <%
- If upload_ok Then
- %>
- <table>
- <tr>
- <td valign=top><img src="<%=upload_dir & TextBoxFileName.Text.ToString & "-" & upload_original & fileExt & "?" & rnd()%>"></td>
- <td valign=top><img src="<%=upload_dir & TextBoxFileName.Text.ToString & "-" & upload_thumb & fileExt & "?" & rnd()%>"></td>
- </tr>
- </table>
- <%
- Else
- Response.Write(msg)
- End If
- %>
- </body>
- </html>
Let's leave all our *plum* where it is and go live in the jungle ...
- rtorres
- Born


- Joined: May 10, 2011
- Posts: 2
- Status: Offline
I realize this is a few years old but maybe someone can shed some light on this for me.
I have been looking for something like this for awhile. I tried this and get:
I have tried setting the page to html, ASP, setting verbs in IIS for html, htm, asp with all access for each. I have set script and executable access, iis premissions wide open on image folder and virtual directory. I also tried to run root of website and also created virtual directory as well. What am I missing here?
I have been looking for something like this for awhile. I tried this and get:
Quote:
The page cannot be displayed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.
--------------------------------------------------------------------------------
Please try the following:
Contact the Web site administrator if you believe that this request should be allowed.
Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.
HTTP Error 405 - The HTTP verb used to access this page is not allowed.
Internet Information Services (IIS)
The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.
--------------------------------------------------------------------------------
Please try the following:
Contact the Web site administrator if you believe that this request should be allowed.
Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.
HTTP Error 405 - The HTTP verb used to access this page is not allowed.
Internet Information Services (IIS)
I have tried setting the page to html, ASP, setting verbs in IIS for html, htm, asp with all access for each. I have set script and executable access, iis premissions wide open on image folder and virtual directory. I also tried to run root of website and also created virtual directory as well. What am I missing here?
- nathanaeljones
- Born


- Joined: May 27, 2011
- Posts: 2
- Status: Offline
What version of IIS are you using? IIS7 has changed in regards to how verbs are permitted and denied.
I'd like to mention:
The snippet above is flawed, and will produce ugly results since it uses nearest-neighbor sampling instead of bicubic. Google "Image resizing pitfalls" for more info.
I'd suggest using something a little more mature, and well tested.
There is a 120kb drop-in library (at imageresizing .net) that lets you upload and resize images easily.
Here's an example that you can drop into any page with upload controls. It resizes all uploaded images to 1024x768 and converts them to jpegs.
You can also crop and resize to a ratio: using "width=1024&height=768&crop=auto" would automatically crop the edges to make the image fit the aspect ratio, then resize it to 1024x768.
You can rotate (&rotate=45), add padding, add watermarks, and do all kinds of cool stuff as well - it's extremely flexible.
Note that you can even resize after uploading with this module - just add ?width=400&height=300 in the URL of the <img src="" /> tag.
I'd like to mention:
The snippet above is flawed, and will produce ugly results since it uses nearest-neighbor sampling instead of bicubic. Google "Image resizing pitfalls" for more info.
I'd suggest using something a little more mature, and well tested.
There is a 120kb drop-in library (at imageresizing .net) that lets you upload and resize images easily.
Here's an example that you can drop into any page with upload controls. It resizes all uploaded images to 1024x768 and converts them to jpegs.
You can also crop and resize to a ratio: using "width=1024&height=768&crop=auto" would automatically crop the edges to make the image fit the aspect ratio, then resize it to 1024x768.
You can rotate (&rotate=45), add padding, add watermarks, and do all kinds of cool stuff as well - it's extremely flexible.
Note that you can even resize after uploading with this module - just add ?width=400&height=300 in the URL of the <img src="" /> tag.
Code: [ Select ]
//Loop through each uploaded file
foreach (string fileKey in HttpContext.Current.Request.Files.Keys) {
HttpPostedFile file = HttpContext.Current.Request.Files[fileKey];
//Get the physical path for the uploads folder
string uploadFolder = MapPath("~/uploads");
//Create the upload folder if it is missing
if (!Directory.Exists(uploadFolder)) Directory.CreateDirectory(uploadFolder);
//The resizing settings can specify any of 30 commands.. See imageresizing .net for details.
ResizeSettings resizeCropSettings = new ResizeSettings("maxwidth=1024&maxheight=768&format=jpg");
//Generate a filename (GUIDs are safest).
string fileName = Path.Combine(uploadFolder, System.Guid.NewGuid().ToString());
//What final type of file will we have? This can depend on whether the resizeCropSettings sepcifies a format,
// and what the original format was (if resizecropSettings doesn't specify one)
fileName += "." + ImageBuilder.Current.EncoderProvider.GetEncoder(resizeCropSettings, fileUpload.PostedFile.FileName).Extension;
//Resize the image
ImageBuilder.Current.Build(file, fileName, resizeCropSettings);
}
foreach (string fileKey in HttpContext.Current.Request.Files.Keys) {
HttpPostedFile file = HttpContext.Current.Request.Files[fileKey];
//Get the physical path for the uploads folder
string uploadFolder = MapPath("~/uploads");
//Create the upload folder if it is missing
if (!Directory.Exists(uploadFolder)) Directory.CreateDirectory(uploadFolder);
//The resizing settings can specify any of 30 commands.. See imageresizing .net for details.
ResizeSettings resizeCropSettings = new ResizeSettings("maxwidth=1024&maxheight=768&format=jpg");
//Generate a filename (GUIDs are safest).
string fileName = Path.Combine(uploadFolder, System.Guid.NewGuid().ToString());
//What final type of file will we have? This can depend on whether the resizeCropSettings sepcifies a format,
// and what the original format was (if resizecropSettings doesn't specify one)
fileName += "." + ImageBuilder.Current.EncoderProvider.GetEncoder(resizeCropSettings, fileUpload.PostedFile.FileName).Extension;
//Resize the image
ImageBuilder.Current.Build(file, fileName, resizeCropSettings);
}
- //Loop through each uploaded file
- foreach (string fileKey in HttpContext.Current.Request.Files.Keys) {
- HttpPostedFile file = HttpContext.Current.Request.Files[fileKey];
- //Get the physical path for the uploads folder
- string uploadFolder = MapPath("~/uploads");
- //Create the upload folder if it is missing
- if (!Directory.Exists(uploadFolder)) Directory.CreateDirectory(uploadFolder);
- //The resizing settings can specify any of 30 commands.. See imageresizing .net for details.
- ResizeSettings resizeCropSettings = new ResizeSettings("maxwidth=1024&maxheight=768&format=jpg");
- //Generate a filename (GUIDs are safest).
- string fileName = Path.Combine(uploadFolder, System.Guid.NewGuid().ToString());
- //What final type of file will we have? This can depend on whether the resizeCropSettings sepcifies a format,
- // and what the original format was (if resizecropSettings doesn't specify one)
- fileName += "." + ImageBuilder.Current.EncoderProvider.GetEncoder(resizeCropSettings, fileUpload.PostedFile.FileName).Extension;
- //Resize the image
- ImageBuilder.Current.Build(file, fileName, resizeCropSettings);
- }
- rtorres
- Born


- Joined: May 10, 2011
- Posts: 2
- Status: Offline
Page 1 of 1
To Reply to this topic you need to LOGIN or REGISTER. It is free.
Post Information
- Total Posts in this topic: 6 posts
- Users browsing this forum: No registered users and 116 guests
- You cannot post new topics in this forum
- You cannot reply to topics in this forum
- You cannot edit your posts in this forum
- You cannot delete your posts in this forum
- You cannot post attachments in this forum
