|
Thanks for the article!
Solved my problems.
FlashMerlot
|
|
|
|
|
Dear Sir,
I use your code to Upload Image as standalone and it works fine.
I have started facing problems while Trying to use the code in DataGrid.
I set in Edit mode in Template Coloum the HTML File Control and I wanted
to upload the Image to specific directory and the file name to store in Access DB.
I couldn't catch the HTML Control in the UpDate Method (Working with C#..)
and to continue the running of the code..
Pls Help.
Thanks
ArnLee
P.S.
1. The UpDate Method ..
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
File TmpabcPic1 = (File)e.Item.FindControl("abcPic");
....continue the code...
2. the control in the ASPX Page..
<edititemtemplate>
|
|
|
|
|
i'm also facing exactly the same problem, so please help me out...........
|
|
|
|
|
With the HTML File field, converted to a server control, simply
1: Verify that the file is an image ( btnFile.PostedFile.ContentType == "image/pjpeg")
2: Verify size constraints ( btnFile.PostedFile.ContentLength )
3: Get the strings path, fileName as in the example, and
btnFile.PostedFile.SaveAs( path + fileName );
This does seem to take a little longer to upload than does the example, but I have experienced problems with the above, in that sometimes the file I uploaded didn't get recognized as a JPEG on the server, don't know why.
Phil
|
|
|
|
|
The easiest way to upload and resize an image to the internet is I-Load.
I-Load is a FREE ASP.NET web control with numerous benefits and features.
You can download I-Load (it's FREE!) and view an online demo here:
http://www.radactive.com/en/Products/ILoad/Overview.aspx
|
|
|
|
|
its not free.
there is a trial, which is a very different thing
|
|
|
|
|
You are right.
But when I posted my previous message (more than 4 years ago), there was a free version.
|
|
|
|
|
Hi,
Thank you for posting your code. I found it very helpful. One problem I do encounter is the following: In debug mode, I have a breakpoint set at the beginning of the submit method. When I try to save a smaller file, it works just fine, but if I try to upload a file > 4 MB, the debugger doesn't even get to the first line of the submit method. Furthermore, I don't receive an ASP.NET error page, just a generic IE Error ("Could not locate file blah blah blah").
Does anyone have any thoughts about where in the ASP.NET page lifecycle the error is occurring? Is the message being sent to the server just too darn big?
Thanks in advance for your help,
virsum
|
|
|
|
|
there is a file size restriction in the web.config file, i don't remember what it is exactly but it has a default of 4 mb.
|
|
|
|
|
Add httpRuntime maxRequestLength="24576" to the system.web section.
24576 will allow 24 MB uploads, you can adjust this as needed.
Correct, the default is 4 MB.
Hope this helps.
Victor
-- modified at 13:19 Monday 24th April, 2006
|
|
|
|
|
i want to upload all files from selecting the folder or specify that folder path.
one by one file will be upload on web server path using .NET application as well as vb6 application.
sachin
|
|
|
|
|
I have the following error,,
would u please help me for it,
Access to the path "c:\inetpub\wwwroot\testimgupload\images\ppp.jpg" is denied
and it point to the following line:
Dim newFile As System.IO.FileStream = New System.IO.FileStream(Server.MapPath(sSavePath + sFilename), System.IO.FileMode.Create)
|
|
|
|
|
Check the permissions on that folder, using windows explorer right click and select properties, then select security (for xp pro or sharing xp home) then check that iusr has write permissions on that folder.
|
|
|
|
|
System.Drawing.Image.GetThumbnailImageAbort myCallBack =
Line 61: new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
Line 62: Bitmap myBitmap;
Line 63: try
Line 64: {
Compiler Error Message: CS0246: The type or namespace name 'Bitmap' could not be found (are you missing a using directive or an assembly reference?)
izzit i need add in somthing in the webconfig?,, i do this code in webmatrix,, any solution?
|
|
|
|
|
Make sure you have a reference to the System.Drawing namespace at the top of your code file (e.g. "using System.Drawing;")
|
|
|
|
|
When i ran the example, upon clicking upload button, this message appear:
Server Error in '/Example' Application.
--------------------------------------------------------------------------------
Could not find a part of the path "c:\inetpub\wwwroot\Example\images\che_guevara.jpg".
Source Error:
Line 96:
Line 97: // Save the stream to disk
Line 98: System.IO.FileStream newFile = new System.IO.FileStream(Server.MapPath(sSavePath + sFilename), System.IO.FileMode.Create);
Line 99: newFile.Write(myData,0, myData.Length);
Line 100: newFile.Close();
Error on line 98.
Hope you can help,TQ!
|
|
|
|
|
I would like to upload a file in to sql database. Anyone has it in .NET syntax?
For the method you just did. when the upload button is clicked, it is uploaded to a folder in my local computer. If someone else using a different computer uploads pic. Would it be to my computer?
Lastly.....just to know....can i use type C# code on a webform? would it work?
I am actually new in programming and is trying to create a website like ebay.
just for fun! Am stuck...help me pls someone =)
|
|
|
|
|
|
This tool is quite cool. But don't you think that the size of the thumbnail should be dependant on the original picture file? Well I do... I get the original picture size, calculate the width/height ratio, initialize only one dimension of the thumbnail size and then... calculate the rest. (floatSizeRatio and intBiggerDim being newly added variables)
// calculate thumbnail size
floatSizeRatio = myBitmap.PhysicalDimension.Height/myBitmap.PhysicalDimension.Width;
if (floatSizeRatio > 1)
{
// portrait image
intThumbHeight = intBiggerDim;
intThumbWidth = (int) (intThumbHeight / floatSizeRatio);
}
else
{
// landscape image
intThumbWidth = intBiggerDim;
intThumbHeight = (int) (intThumbWidth * floatSizeRatio);
}
|
|
|
|
|
I agree that this would be essential. However, if you were to do this the imgPicture should also have its width and Height set in a similar manner.
When I try this, I get the following error:
Value of type 'Integer' cannot be converted to 'System.Web.UI.WebControls.Unit'
Any ideas?
|
|
|
|
|
It seems that when setting the image hight or width, that a Unit is required.
' Calculate the size ratio
dblfloatSizeRatio = mybitmap.PhysicalDimension.Height / mybitmap.PhysicalDimension.Width
If dblfloatSizeRatio > 1 Then
intThumbHeight = intBiggerDim
intThumbWidth = (intThumbHeight / dblfloatSizeRatio)
Else
intThumbWidth = intBiggerDim
intThumbHeight = (intThumbWidth * dblfloatSizeRatio)
End If
Dim mythumbnail As System.Drawing.Image
mythumbnail = mybitmap.GetThumbnailImage(intThumbWidth, intThumbHeight, myCallBack, IntPtr.Zero)
mythumbnail.Save(Server.MapPath(sSavePath + sThumbFile))
ImgPicture.ImageUrl = sSavePath + sThumbFile
' Set the imgPicture height and width
imgPicture.Height = New Unit(intThumbHeight)
imgPicture.Width = New Unit(intThumbWidth)
|
|
|
|
|
do you have to explicitly call the dispose method on the image?
|
|
|
|
|
Is there a way to limit the JPG file size to 100kb?
Thanks.
|
|
|
|
|
Private Sub btnUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpload.Click
'Initialize variables
Dim sSavePath As String
Dim sThumbExtension As String
Dim intThumbWidth As Integer
Dim intThumbHeight As Integer
'Set constant values
sSavePath = "~/images/"
sThumbExtension = "_thumb"
intThumbWidth = 160
intThumbHeight = 120
'If file field isn’t empty
If IsNothing(filUpload.PostedFile) = False Then
'Check file size (mustn’t be 0)
Dim myFile As HttpPostedFile = filUpload.PostedFile
Dim nFileLen As Integer = myFile.ContentLength
If nFileLen = 0 Then
lbloutput.Text = "No file was uploaded."
Return
End If
'Check file extension (must be JPG)
If System.IO.Path.GetExtension(myFile.FileName).ToLower() <> ".jpg" Then
lbloutput.Text = "The file must have an extension of JPG"
Return
End If
'Read file into a data stream
Dim myData() As Byte = New Byte(nFileLen) {}
myFile.InputStream.Read(myData, 0, nFileLen)
'Make sure a duplicate file doesn’t exist. If it does, keep on appending an
'incremental numeric until it is unique
Dim sFilename As String = System.IO.Path.GetFileName(myFile.FileName)
Dim file_append As Integer = 0
While System.IO.File.Exists(Server.MapPath(sSavePath + sFilename))
file_append = file_append + 1
sFilename = System.IO.Path.GetFileNameWithoutExtension(myFile.FileName) & file_append.ToString() + ".jpg"
End While
'Save the stream to disk
Dim newFile As System.IO.FileStream = New System.IO.FileStream(Server.MapPath(sSavePath + sFilename), System.IO.FileMode.Create)
newFile.Write(myData, 0, myData.Length)
newFile.Close()
' Check whether the file is really a JPEG by opening it
Try
' If jpg file is a jpeg, create a thumbnail filename that is unique.
file_append = 0
Dim sThumbFile As String = System.IO.Path.GetFileNameWithoutExtension(myFile.FileName) & sThumbExtension + ".jpg"
While System.IO.File.Exists(Server.MapPath(sSavePath + sThumbFile))
file_append = file_append + 1
sThumbFile = System.IO.Path.GetFileNameWithoutExtension(myFile.FileName) & file_append.ToString(+sThumbExtension + ".jpg")
End While
Dim ThumbnailCallback As System.Drawing.Image.GetThumbnailImageAbort
Dim myCallBack As System.Drawing.Image.GetThumbnailImageAbort
' Save thumbnail and output it onto the webpage
Dim mybitmap As Bitmap
mybitmap = New Bitmap(Server.MapPath(sSavePath + sFilename))
Dim mythumbnail As System.Drawing.Image
mythumbnail = mybitmap.GetThumbnailImage(intThumbWidth, intThumbHeight, myCallBack, IntPtr.Zero)
mythumbnail.Save(Server.MapPath(sSavePath + sThumbFile))
Imgpicture.ImageUrl = sSavePath + sThumbFile
' Displaying success information
lbloutput.Text = "File uploaded successfully!"
' Destroy objects
mythumbnail.Dispose()
mybitmap.Dispose()
Catch errArgument As ArgumentException
' The file wasn't a valid jpg file
lbloutput.Text = "The file wasn't a valid jpg file."
System.IO.File.Delete(Server.MapPath(sSavePath + sFilename))
End Try
End If
End Sub
|
|
|
|
|
Remeber to change the line containing the following:
Dim sThumbFile As String = System.IO.Path.GetFileNameWithoutExtension(myFile.FileName) & sThumbExtension + ".jpg"
to
Dim sThumbFile As String = System.IO.Path.GetFileNameWithoutExtension(sFilename) & sThumbExtension + ".jpg"
Otherwise it will fail if the thumbnail already exists
|
|
|
|