Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > asp.net : resim kaydetme + dil problemi
Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
06.09.2007-10:51 #27041
Arkadaşlar,

Sorunu bir türlü çözemedim.

Localde resim kaydedebiliyorum. Server'da kaydedemiyorum. Server'ımızın dili ingilizce.

web.config'te

"<globalization requestEncoding="windows-1254" responseEncoding="windows-1254" fileEncoding="windows-1254" culture="tr-TR" uiCulture="tr-TR"/>" bu kod var.

sayfaların hiçbirinde dille ilgili meta tag'ı yok. Resim kaydetmede verdiği hata sadece resmin yolu.


c:/documents and settings/serap/desktopoff.gif

arada slash lar yok farkındaysanız, bu normal mi? Bir de bazı karakterler kutu şeklinde çıkıyor. Bu nedenle ben dille ilgili bir problem diye düşündüm. Aklınıza gelen bütün ihtimalleri sıralayabilirsiniz. (Hata mesajını açıklayıcı bulmadım bu arada.)

Acilen yardımlarınızı bekliyorum. İlginize şimdiden teşekkürler.

Hepimize kolay gelsin. :)





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
06.09.2007-11:01 #27042
Bazen de onaltılık hane bekleniyor hatası veriyor.

hatayı ayıklamak istediğimde de buraya düşüyor.

hata mesajını javascriptle yazdırıyorum da:

<script language='javascript'>alert('C:Documents and SettingsserapDesktopx.jpg');







bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
mehmet


avatar
Antalya
Kayıt: 29.01.2006
06.09.2007-11:24 #27043
c# kullanıyorsan stringlerin içine yazmak için \ yazmalısın. Çünkü özel bir karakterdir. Encodingleri de utf-8 yap. windows yapıca requestlerde turkce problemi oluşuyor.

Örnek bi web config dosyası vereyim bunda türkçe karakterler normal.

<?xml version="1.0"?>
<configuration>
	<configSections>
		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
				</sectionGroup>
			</sectionGroup>
		</sectionGroup>
	</configSections>
	<system.web>
    <customErrors mode="Off"/>
    <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="windows-1254" culture="tr-TR" uiCulture="tr" />
		<pages enableEventValidation="false" validateRequest="false">
      
			<controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="ajaxToolkit"/>
			</controls>
		</pages>
		
		<compilation debug="true">
			<assemblies>
				<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
				<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
				<add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies>
		</compilation>
		<httpHandlers>
			<remove verb="*" path="*.asmx"/>
			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
      <add verb="GET" path="ScriptResource.axd" type="Microsoft.Web.Handlers.ScriptResourceHandler" validate="false"/>
		</httpHandlers>
		<httpModules>
			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
		</httpModules>
	</system.web>
	<system.web.extensions>
		<scripting>
			<webServices>
			
			</webServices>
		
		</scripting>
	</system.web.extensions>
	<system.webServer>
		<validation validateIntegratedModeConfiguration="false"/>
		<modules>
			<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
		</modules>
		<handlers>
			<remove name="WebServiceHandlerFactory-Integrated"/>
			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
		</handlers>
	</system.webServer>
</configuration>


iis ten ayarlara da bi goz at bence





Soldier of Fortune


Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
06.09.2007-11:54 #27046
sağolasın mehmet. böylelikle dil problemi olmadığını anladık. "", "\" ile replace yaptım. hata mesajı dosyanın yolu. (bu arada sadece resimleri değil dosyaları da kaydetmiyor.) ama hatayı hala çözemedim. klasöre everyone ekledim. tam yetki verdim. iis te başka hangi ayarlara bakılır ki?





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
mehmet


avatar
Antalya
Kayıt: 29.01.2006
06.09.2007-15:15 #27056
kodda sorun olabilir bu dosya upload olaylarında surekli sorun oluyor. sen kodunu buraya bi yaz bakalım. olmazsa ben sana veririm ornek





Soldier of Fortune


Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
06.09.2007-15:24 #27059
ama kod laocalde çalışıyor localde çalışırken resmi kaydediyor. ama iis te web sitelerinin altına atınca try catche düşüp resmin yolunu ex.message ı olarak atıyor.

kodlar şöyle:

 


//bu fonksiyonumuz
public static string ResizeImage(string sourceImagePath, string newImagePath, int newWidth, int newHeight, System.Drawing.Imaging.ImageFormat imageFormat)

{

string str = "resim kaydetme başarılı...";

try
{
System.Drawing.Image fullSizeImg = System.Drawing.Image.FromFile(sourceImagePath);
System.Drawing.Image.GetThumbnailImageAbort dummyCallBack = new System.Drawing.Image.GetThumbnailImageAbort(BasicS.ThumbnailCallback);
System.Drawing.Image thumbNailImg = fullSizeImg.GetThumbnailImage(newWidth, newHeight, dummyCallBack, IntPtr.Zero);

if (sourceImagePath == newImagePath)
System.IO.File.Delete(sourceImagePath);

thumbNailImg.Save(newImagePath, imageFormat);
thumbNailImg.Dispose();
}
catch (Exception ex)
{
str = ex.Message;
str.Replace("", "\");

}
return str;
}

//bu da çağırdığım yer

string a = ResizeImage(Url, Server.MapPath("..\\") + defaultuploadfolder + "s_" + ID + imgUrl, 100, 75, System.Drawing.Imaging.ImageFormat.Jpeg);

Response.Write("<script language='javascript'>alert('" + a+ "');</script>");



alert olarak resmin yolu geliyor. çıldırmaya az kaldı....d oh

not: kod biraz kalabalık. resmi yeniden boyutlandırıyoruz çünkü.





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
06.09.2007-16:44 #27064
bu resim olayları gerçekten sıkıntı yaratıyor .NET te imageresize ederken açılan thread bazen kapanmıyor bu yuzden ne resim upload oluyor nede o klasoru silebiliyorsun. birde klasorun chmod ayarlarını 777 - klasora yazma izninin- olması lazım.





N/A
Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
06.09.2007-18:27 #27070
sağolasın orhan. dediklerini uyguladım ama yine olmuyor crying dediğim gibi tüm fikirlere açığım.

sadece bu projede oluyor bu sorun diğerlerinde olmuyor. ve resmi resize yapmadığım dosyalarda da sorun yaşıyorum, normal bir text dosyası için falan da.

off... off...

ilginize teşekkürler yine de...





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
mehmet


avatar
Antalya
Kayıt: 29.01.2006
06.09.2007-21:57 #27077
Flaş Flaş Flaş :P

İstanbulu terkedip Antalyaya yerleşmemin şerefine kodlarımı paylaşıma açıyorum :)

Alın size Thumb class ım. ee daha napıyım artık. Sorunsuz calışıyor.

Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO
Public Class createThumb

    Private Function NewthumbSize(ByVal currentwidth As Double, ByVal currentheight As Double, ByVal desiredheight As Double, ByVal desiredwidth As Double) As Size
        Dim tempMultiplier As Double = 0
        If (currentheight > currentwidth) Then
            tempMultiplier = desiredheight / currentheight
        Else
            tempMultiplier = desiredwidth / currentwidth
        End If
        Dim newSize As New Size(Convert.ToInt32(currentwidth * tempMultiplier), Convert.ToInt32(currentheight * tempMultiplier))
        Return newSize
    End Function

    Public Function DonThumb(ByVal yol As String, ByVal filead As String, ByVal desiredheight As Double, ByVal desiredwidth As Double) As System.Drawing.Bitmap
        Dim g As System.Drawing.Image
        g = Image.FromFile(yol)
        Dim thisFormat As ImageFormat = g.RawFormat
        Dim thumbSize As New Size()
        thumbSize = NewthumbSize(g.Width, g.Height, desiredheight, desiredwidth)
        Dim imgOutPut As New Bitmap(g, thumbSize.Width, thumbSize.Height)
        Return imgOutPut
    End Function

    Public Sub ThumbKaydet(ByVal buyukresimyol As String, ByVal filead As String, ByVal filead2 As String, ByVal wid As Double, ByVal hei As Double)
        Dim bmp As System.Drawing.Bitmap
        bmp = DonThumb(buyukresimyol + "" + filead, filead, wid, hei)
        bmp.Save(buyukresimyol + "" + filead2)
    End Sub
    Public Function ResimSil(ByVal buyukresimyol As String, ByVal kucukresimyol As String, ByVal filead As String) As Boolean
        Try
            If (File.Exists(buyukresimyol + "" + filead)) Then File.Delete(buyukresimyol + "" + filead)
        Catch
            Try
                If (File.Exists(kucukresimyol + "" + filead)) Then File.Delete(kucukresimyol + "" + filead)
            Catch
            End Try
        End Try
    End Function

End Class



tek yapmanız gereken 2 satır eklemek







Soldier of Fortune


Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
10.09.2007-15:57 #27211
herkese çok teşekkür ederim arkadaşlar.

.nette deneyimli iş arkadaşım sorunu buldu. adım adım anlatayım.

hata mesajının sadece resmin yolu olduğunu görünce "bu bilmediğimiz bir hata mesajı olmalı". drawing kütüphanesinin hata mesajı imiş.

BOYUTLANDIRILACAK RESMİN KAYDEDİLECEK BİLGİSAYARDA OLMASI GEREKİYOR. bu nedenle resim önce temp bir klasöre kaydedilmeli imiş. bunun dışında kodlarda bir sorun yok.

(sizi bilmem. ben bir şey daha öğrenmiş oldum.)





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb