Laden...

Forenbeiträge von Burnswigg Ingesamt 211 Beiträge

10.03.2011 - 14:40 Uhr

Hallo Marsstein,

eine Masterseite. Ich habs jetzt mit einer static Globalen variable gelöst. Ist nicht gerade schön. Aber es funktioniert. Sobald der User auf einen Link klickt wird der zugewiesene Menüeintrag gesucht und dessen Namen in die Globale Variable geschrieben.

Im MenuAdapter prüfe ich mit einer override Methode in eine Schleife die Namen und vergleiche Sie mit der Variable. Wenn das true ist setzte ich das Menu.Item auf selected.

09.03.2011 - 15:34 Uhr

Gibt es eine Möglichkeit die Stile eines asp:menus dynamisch von einer Unterseite aus zu verändern.
Konkretes Beispiel wäre zb: Wenn ein User auf einen Menüpunkt klickt wird dieser Fett - noch kein Problem da die Stil Class "AspNet-Menu-Selected" übergeben wird und man diese ja im ganz leicht ändern kann. Wenn jedoch ein User innerhalb des Content Bereiches navigiert und nicht auf das Menu drückt wird kein Erreignis ausgelöst und somit wird das Menue nicht fett.

Gibt es also die Möglichkeit das Menue neu zu rendern und Ihm als Übergabeparameter das aktuelle Menue zu mitzugeben um es fett zu machen?

Das Menu wird so aufgerufen:

            <asp:Menu ID="MainNav" DisappearAfter="1500"  runat="server" DataSourceID="SiteMapDS" Orientation="Horizontal" />
            <asp:SiteMapDataSource runat="server" ID="SiteMapDS" ShowStartingNode="false"/>

danke

09.03.2011 - 15:26 Uhr

Wieso nimmst kein Forum - da kannst deine Tänzer auch Newsletter schreiben usw.

09.03.2011 - 15:24 Uhr

ich hab jetzt die Lösung - und zwar hab ich einen anderer Urlrewiter verwendent und das funktioniert einwandfrei. Danke für deine Hilfe.

Sollte das Problem noch jemand haben:
Die .dll Datei ist: Intelligencia.UrlRewriter.dll
und in der WebConfig sollte das so aussehen:



 <rewriter>
    <rewrite url="~/(.+)_(.+)_(.+)/(.+).aspx" to="~/detail.aspx?mname=$1&amp;mid=$2&amp;eid=$3&amp;ename=$4" />
    <rewrite url="~/Info_(.+)/(.+).aspx" to="~/uebersicht.aspx?mid=$1&amp;mname=$2" />
  </rewriter>


<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
		</httpModules>

02.03.2011 - 16:36 Uhr

Als Content steht das dring:


__EVENTTARGET=ctl00%24uc_frameleft%24_lb_senden&__EVENTARGUMENT=&__VIEWSTATE=%vile Buchstaben2FDqgw0idihS9tc1iJr&__PREVIOUSPAGE=3SLpvLRcq90JMtqYgfnm9GEEvSuglVhVpt346IsO7-o1&__EVENTVALIDATION=%2FwEWBAK2ho3GDwKQgpbDBgLLpMs8Arv84dsLCa%2BlXyce01yuGaiUfER7FDT0APk%3D&ctl00%24uc_frameleft%24_tbEmail=insektenschutz

Referer: http://www.XXXX.com/Info_12/meineSeite.aspx
Url ist das selbe

IIS Version hab ich V6

02.03.2011 - 16:16 Uhr

Online - Postback ist auch wenn ich auf den Btn drücke immer false (auf der site.Master)
Offline ist er aber true wenn ich drücke.

Was meinst du mit Version - Framework?

02.03.2011 - 09:02 Uhr

Hallo MarsStein,

Ich habe folgendes in die MasterSite eingebaut:


 <% try
        {
            Response.Write(Request.Params["__EVENTTARGET"].ToString());
        }
        catch
        {
        
        }
%>

und bekomm wenn ich auf den Button klicke folgendes retour:

ctl00$uc_frameleft$_lb_senden

Ich möchte dass er in die Codebehind Datei die OnClick Methode ausführt.

Was kann ich da nur machen - ich verzweifle schön langsam??!!
Danke für deine Hilfe

01.03.2011 - 11:39 Uhr

danke für die Antwort - kann ich das irgendwie übergehen? - der Code wird ja automatisch erzeugt!

28.02.2011 - 13:33 Uhr

hallo MarsStein

Zuerst einmal danke für deine Antwort. Ich hab mal im gerendertem Zusstand den Btn rausgesucht:

<a id="ctl00_uc_frameleft__lb_senden" class="FT_funct_12" href="javascript:__doPostBack('ctl00$uc_frameleft$_lb_senden','')">
                <img src="~/images/pfeil_orange.gif" style="border:0px;" alt="senden" title="senden"/> senden</a></div>
	    </div>

die doPostBack schaut so aus:


<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>




aber das bringt mir jetzt auch nichts - ich bin wirklich mit meinem Latein am Ende??
Hast du sonst noch eine Idee?

25.02.2011 - 07:53 Uhr

Guten Morgen,

ich benutze zum Urlrewiting den Code von http://www.urlrewriting.net - funtkioniert auch alles Prima. Jedoch haben ich in den Seiten die das Urlrewiting benutzen auch ein UserControl eingebaut welches mit Textboxen und Linkbuttons bestückt ist. Das Problem ist wenn ich auf einen Linkbutton drücke wird kein OnClick Event ausgelöst sondern nur die Seite neu geladen. Offline funktioniert die Sache aber auch?? Wenn ich die Web.Config umschreiben und das Urlrewiting aussschalte funktioniert es auch Online??

Hier ein Auszug der Web.Config:


 <configSections>
    <section name="urlrewritingnet"
             requirePermission ="false"
             type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"  />
  </configSections>

  <urlrewritingnet
    rewriteOnlyVirtualUrls="true"
    contextItemsPrefix="QueryString"
    defaultPage = "index.aspx"
    defaultProvider="RegEx"
    xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
    <rewrites>
      <add name="Rewrite_Entry" virtualUrl="^~/(.*)_(.*)_(.*)/(.*).aspx"
           rewriteUrlParameter="ExcludeFromClientQueryString"
           destinationUrl="~/entry.aspx?mname=$1&amp;mid=$2&amp;eid=$3&amp;ename=$4"
           ignoreCase="true" />

      <add name="Rewrite_Menue" virtualUrl="^~/Info_(.*)/(.*).aspx"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="~/entriesforonementry.aspx?mid=$1&amp;mname=$2"
     ignoreCase="true" />


    </rewrites>
  </urlrewritingnet>

Und hier ein Auszug der .aspx Datei


 <asp:LinkButton ID="_lb_senden" runat="server" CssClass="FT_funct_12" OnClick="_lb_senden_Click"><img src="http://www.xxxxx.com/images/pfeil_orange.gif" title="suchen"/> suchen</asp:LinkButton>

danke für eure Tips

04.02.2010 - 11:00 Uhr

Salute

danke für die Info.
hast du vielleicht einen Idee wieso er mir die CSS, nach einem klick, auf der root Seite löscht?
Kann das sein sein dass dies kein Postback mit dem Javascript ist, oder bin ich da auf dem Holzweg?

03.02.2010 - 10:40 Uhr

Hi,

nach einem Klick auf einem Linkbtn möchte ich gerne eine Reihe von Funktiuonen ausführen. Wenn diese positiv beendet sind soll auf eine neue Seite (_blank) gesprungen werden.

Mit Response.Redirect funzt ja nicht.
Mit Javascript, hab ich a, das Problem mit dem PopUp Blocker und b löscht er mir irgendwie die Styles aus der Seite.

Gibt es sonst noch einen Möglichkeit?


if (e.CommandName == "weiter")
        {
            Label idlabel = (Label)DownloadRepeater.Items[Convert.ToInt32(e.CommandArgument)].FindControl("_idlabel");
            int fileid = Convert.ToInt32(idlabel.Text);
            Label fpath = (Label)DownloadRepeater.Items[Convert.ToInt32(e.CommandArgument)].FindControl("_pathlabel");
            string _fpath = fpath.Text;

            if (fileid >= 1)
            {
                _entry = new entryweb();
                _entry.updateFileCounter(fileid);
                Response.Write("<script language='javascript'>window.open('userfiles/file/downloads/" + _fpath + "','"+fileid+"')</script>"); 
                //Response.Redirect("userfiles/file/downloads/" + _fpath + "");
            }
        }

danke

27.01.2009 - 12:30 Uhr

Hi,

hier die Exception:

System.Net.Mail.SmtpException: Falsche Befehlsfolge. Die Serverantwort war: Bad sequence of commands
   bei System.Net.Mail.RecipientCommand.CheckResponse(SmtpStatusCode statusCode, String response)
   bei System.Net.Mail.RecipientCommand.Send(SmtpConnection conn, String to, String& response)
   bei System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
   bei System.Net.Mail.SmtpClient.Send(MailMessage message)
   bei WEB.entryweb.SendMail(MailAddress to, String subject, String body)

Ich schau mir die Liste 'List<T>' an. Danke für die Info.

27.01.2009 - 11:54 Uhr

Hi,

ich bekomme hier immer eine Exception mit "Bad Sequence of Commands"
wenn ich das ganze 2 mal durchlaufe.
Die erste Mail schickt er ganz normal.
Habt Ihr eine Ahnung?

danke

     public bool SendMail( MailAddress to, string subject, string body)
        {
            ArrayList _mailinfos = GetMailInfos();
            MailAddress from =  new MailAddress(_mailinfos[0].ToString());
            MailAddress empf;
            if (to == null)
            {
                empf = new MailAddress(_mailinfos[0].ToString());
            }
            else
            {
                empf = new MailAddress(to.Address);
            }
            MailMessage msg = new MailMessage(from, empf);
            if (subject == "")
            {
                msg.Subject = _mailinfos[1].ToString();
            }
            else
            {
                msg.Subject = subject;
            }
            msg.Body = body;
            msg.IsBodyHtml = true;
            
            SmtpClient client = new SmtpClient(_mailinfos[2].ToString());
            System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(_mailinfos[4].ToString(), _mailinfos[3].ToString());
            client.UseDefaultCredentials = false;
            client.Credentials = SMTPUserInfo;

            try
            {
                client.Send(msg);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }
09.09.2008 - 12:17 Uhr

Hi, seit einigen Jahre benutze ich das Imageupload-Tool von aurigma.
Leider ist es nun so dass ich verschiedene Systeme auch auf anderen Servern installieren muss.

Deshalb meine Frage: Kennt Ihr ein Tool mit dem ich mehrere Bilder auswählen und uploaden kann bzw. sollte auch ein Preview erzeugt werden. Eines der wichtigsten Sachen ist, dass ich das Tool auf verschiedenen Ips und Domains einsetzen kann.

danke für eure Hilfe

31.07.2008 - 11:16 Uhr

hat super funktioniert, danke

31.07.2008 - 10:18 Uhr

Die zweite Möglichkeite wäre diese:


 try
        {
         int count = 0;
         sqlcon = new SqlConnection("server=192.168.1.16; database=TestDatenbank; uid=atmcms; pwd=atmcms; Asynchronous Processing=true");
         sqlcon.Open();
         _erg.Text = "Connectionsstring = server=192.168.1.16; database=TestDatenbank; uid=atmcms; pwd=atmcms geöffnet";
         SqlCommand command = new SqlCommand(_sqlanw, sqlcon);

         IAsyncResult result = command.BeginExecuteNonQuery();
         while (!result.IsCompleted)
         {
             Response.Write(count.ToString());
             count++;
             System.Threading.Thread.Sleep(100);
         }
         Response.Write("Command complete. Affected {0} rows.");
         _erg.Text="Command complete. Affected {0} rows.";
         command.EndExecuteNonQuery(result);
        }
        catch (SqlException ex)
        {
            _erg.Text = ex.Message;
        }

leider kommt dann:
Nicht genügend Systemarbeitsspeicher vorhanden, um diese Abfrage auszuführen.

31.07.2008 - 10:11 Uhr

ich hab das jetzt mit dem "ReadtoEnd" gemacht:


try
        {
            _PfadderDatei = Server.MapPath("Daten.sql");
            //_PfadderDatei = Server.MapPath("SQL_Create_CMS_Tabellen.sql");
            if (!File.Exists(@_PfadderDatei))
            {
                throw new Exception("Datei existiert nicht");
            }
           using (StreamReader sr = new StreamReader(@_PfadderDatei))
            {
                
                _sqlanw = sr.ReadToEnd();
                
            }
            _erg.Text = "Daten eingelesen";
        }
        catch (Exception ex)
        {
            _erg.Text = ex.Message;
        }

einlesen funktioniert:
Hier die Funct für die Datenbank:


 try
        {
            sqlcon = new SqlConnection("server=192.168.1.16; database=TestDatenbank; uid=atmcms; pwd=atmcms");
            sqlcon.Open();
            _erg.Text ="Connectionsstring = server=192.168.1.16; database=TestDatenbank; uid=atmcms; pwd=atmcms geöffnet";
            SqlCommand myCommand = new SqlCommand(_sqlanw, sqlcon);
             int ret1 = myCommand.ExecuteNonQuery();
             _erg.Text = ret1.ToString() +" Zeilen eingefügt";
        }
        catch (SqlException ex)
        {
            _erg.Text = ex.Message;
        }

wenn ich das gane ausführe bekomm ich dann vom Server ein Timeout:

Timeout ist abgelaufen. Das Zeitlimit wurde vor dem Beenden des Vorgangs überschritten oder der Server reagiert nicht.

31.07.2008 - 08:52 Uhr

@Khalid
wenn man in eine cs Datei 73000 Inserts schreibt, hängt sich Visual Studio auf

@xxxprod


INSERT INTO [Settings] ([S_ID], [Aktion], [Wert]) VALUES ( 1,  'Homepath',  '../index.aspx')
INSERT INTO [Settings] ([S_ID], [Aktion], [Wert]) VALUES ( 2,  'XLS Feature',  'True')

Die Daten sind genau so formatiert. D.h. ich hab keine " oder; funktioniert dass trotzdem bei der Anzahl von EInträgen?
Bräucht ich da nicht ein WAIT FOR DELAY?

31.07.2008 - 08:24 Uhr

Ich habe auf meinem Server eine SQL Datenbank (Microsoft SQL Server) mit dem
ich mittels CMS kommuniziere.

Jetzt ist es so dass ich die Datenbank auf einen anderen Server legen muß, bei dem ich keinen Remotezugriff habe. Ich habe alle Tabellen mit dem Manager ausgegeben und in eine Datei schreiben lassen. Das Problem sind die Daten in den Tabellen, ung. 73000 Zeilen, welche ich mittels einer SQL Prozedur in Inserts umgewandelt und ebenfalls in eine .sql Datei geschrieben habe.

Nun kann ich mein CMS zwar auf den Server laden aber ohne Datenbank tut sich dass eher schwer.

Die Insert Befehle in einer .cs Datei zu schreiben ist leider mit 73000 Zeilen nicht möglich.


command.BeginExecuteNonQuery();

funktioniert nur bedingt.

Meine Frage: Wie kann ich mittels C# Code eine .sql Datei am Server ausführen?

danke für eure Hilfe.

12.12.2007 - 12:36 Uhr

ich würde gerne eine ftp Verbindung aufbauen und dieses File downloaden.
Funktioniert einwandfrei wenn ich im Intranet bleibe. Connecte ich mich aber von außerhalb bekomm ich eine Exception mit "Die Verbindung mit dem Remoteserver kann nicht hergestellt werden"
Firewall gibt es, kann es aber nicht sein da ich mit auch von außerhalb mittels ftp Client zugreifen kann.
Die Ports 21 / 1024-1400 sind offen.

Hier die Funktion:


FileStream outputStream = new FileStream(PfadfürdieTempDatei, FileMode.Create);
                reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(GetFTpPass() + _orgpath));
                reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
                reqFTP.UseBinary = true;
                reqFTP.Credentials = new NetworkCredential(SData.LoginName, SData.Passwort);
                FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                Stream ftpStream = response.GetResponseStream();
                long cl = response.ContentLength;
                int bufferSize = 2048;
                int readCount;
                byte[] buffer = new byte[2048];
                readCount = ftpStream.Read(buffer, 0, bufferSize);
                while (readCount > 0)
                {
                    outputStream.Write(buffer, 0, readCount);
                    readCount = ftpStream.Read(buffer, 0, bufferSize);
                }
                ftpStream.Close();
                outputStream.Close();
                response.Close();

danke für die Hilfe.

07.12.2007 - 08:56 Uhr

Ich hab möglicherweise deine frage nicht richtig verstanden aber wenn du eine neue Datenbank mit dem SQL Tool anlegst kannst du so eine Verbindung einrichten:


 private bool GetConnection()
        {
            try
            {
                sqlcon = new SqlConnection("server=127.0.0.1; database=DeinDatenbankName; uid=UserfürDB; pwd=PasswortfürDB");

                sqlcon.Open();
                adapter = new SqlDataAdapter();
                if (sqlcon.State == ConnectionState.Open)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }

06.12.2007 - 12:23 Uhr

Hi,

ich bei meinem Fileupload wird wenn alles beendeet ist und die Seite wieder geladen wird die Session gelöscht. Ich habs schon mit statischen Variablen probiert welche aber auch auf einmal null waren?

hier der Code vom Page Load:


            if (!IsPostBack)
            {
                if (Session["LoginName"] == null || Session["Passwort"] == null || Session["UserId"] == null || Session["UDB_ID"] == null)
                {
                    Response.Redirect("index.aspx");
                }
                _udbid = int.Parse(Session["UDB_ID"].ToString());
                Username = Session["Passwort"].ToString();
                Loginanem = Session["LoginName"].ToString();
                Userid = int.Parse(Session["UserId"].ToString());
            }

hier vom Button der das "speichern" aulöst:


 protected void _btnsave_Click(object sender, EventArgs e)
        {
            Boolean fileOK = false;
            if (FileUpload1.HasFile)
            {
                String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
                String[] allowedExtensions = 
                        { ".gif", ".png", ".jpeg", ".jpg", ".eps", ".bmp", ".psd", ".tif", ".tiff" };
                for (int i = 0; i < allowedExtensions.Length; i++)
                {
                    if (fileExtension == allowedExtensions[i])
                    {
                        fileOK = true;
                    }
                }
            }

            if (fileOK)
            {
                string _erg = "";
                //String path = GetFTpPass()+"/upload/";
                try
                {
                    DirectoryInfo _dir = new DirectoryInfo(Server.MapPath("/App_Data/Upload/"));
                    _dir.Delete(true);
                    Directory.CreateDirectory(Server.MapPath("/App_Data/Upload/"));
                    FileUpload1.PostedFile.SaveAs(Server.MapPath("App_Data\\upload\\") + FileUpload1.FileName);
                    _erg = Upload(FileUpload1.FileName);
                    
                }
                catch (Exception ex)
                {
                    _headlbl.Text = ex.Message;
                }
              //  Response.Redirect("uploadimage.aspx?upload="+test,false);
            }
            else
            {
                _headlbl.Text = "Falsche Endung der Datei";
            }
        }

Mit und ohne Respone.Redirect wird die Session gelöscht?

danke

06.12.2007 - 11:05 Uhr

letzte Frage noch 😁

wenn ich den Download starte und dann wieder auf meine Seite komme dann ist meine Session null??

kann ich das irgendwie beeinflussen?

06.12.2007 - 09:15 Uhr

habs schon probiert, mit dem http handler funktioniert es einwandfrei.

danke für deine Hilfe

06.12.2007 - 09:04 Uhr

wird dann nicht über http geladen? Wenn ich die Daten vom Ftp Server wo anderes hin verschiebe?

06.12.2007 - 08:41 Uhr

Hat funktioniert mit dem http handler. Habs so gemacht:


public void ProcessRequest(HttpContext context)
{
SData = (SessionData)context.Session[SessionData.SessionKey];
if (SData.LoginName == null || SData.LoginName.Length == 0 || SData.UDB_ID == 0)
{
context.Response.Redirect("index.aspx";);
}
_userIP = context.Request.UserHostAddress;
string _orgname = context.Request.QueryString["name"];
context.Response.Redirect(GetFTpPass() + _orgname);
}

Wenn zb eps, zip Dateien herunter geladen funtkioniert der Download einwandfrei,
bei .jpg oder tif Dateien leider nicht da diese im selben Fenster im Browser angezeigt werden.
Die Url ist dann leider zb. diese: ftp://192.168.1.16/DSC_3679.JPG
was ich ja vermeiden wollte.

05.12.2007 - 15:54 Uhr

Danke vielmals für deine Infos.

ich benutze jetzt einen HTTP Handler, leider funzt der nicht so wie ich mir das denke:
in der Web.config:


<httpHandlers>
 <add verb="*" path="*@192.168.1.16/*" type="ATM_Imagebank.Download"/>
</httpHandlers>

auf der aufrufenden Seite:


 Response.Redirect(GetFTpPass()+_orgpath,false);
//Response.Redirect("ftp://192.168.1.16/meinfile.zip");

Ohne das "false" im Redirect bekomm ich eine Fehlermeldung dass der Thread unterbrochen wurde. Mit dem false wird der Handler gar nicht aufgerufen???

danke für deine Hilfe

05.12.2007 - 14:49 Uhr

Ich habe das gleiche Problem,

mit FileUpload funktioniert es nicht da der Upload Ordner im internen Netz ist.
Bei Fileupload muss der Ordner ja im Web Verzeichnis sein.

WEb Server = FTP Server

05.12.2007 - 14:45 Uhr

Wenn man auf den Link <a href"blala"> klick schon ABER
das will ich nicht da dann user und Passwort in der Url sind. Darum habe ich diese zwei funtkionen geschrieben welche den Download Prozess im "Hintergrund" machen. ABER wo kein Link da kein SaveFileDialog. Darum muß ich selbst einen machen, oder es gibt irgendeine andere Möglichkeit.

05.12.2007 - 14:29 Uhr

Wenn es sich um eine ASP.NET Anwendung handelt, frage ich mich wieso du ein SaveFileDialog möchtest, wenn der User diesen eh nicht benötigen/sehen wird.

Natürlich soll er diesen sehen, der User muß ja auswählen wohin er die Datei speichern möchte.

Der Ablauf soll so sein:
User klick auf ein File.
SaveFileDialog öffnet sich
User wählt auf seiner Platte aus wohin er die Files haben möchte
User drückt auf speichern

wenn man <a href="ftp://User:passwort@127.0.0.1\meinFile.zip">Download</a>
in den html Code schreibt wird der User ja auch aufgefordert diese Datei zu speichern.

05.12.2007 - 14:05 Uhr

HI,

ich hab mittlerweile schon 2 verschiedene Arten von FTP Uploads geschrieben:
Version 1:


Uri serverUri = new Uri(GetFTpPass() + _orgpath);
                    if (serverUri.Scheme != Uri.UriSchemeFtp)
                    {
                        throw new Exception("Uri Schme nicht korrekt");
                    }
                    WebClient request = new WebClient();
                    request.Credentials = new NetworkCredential (SData.LoginName,SData.Passwort);
                    
                    try 
                    {
                        
                        request.DownloadFile(serverUri, GetFileName(_orgpath));
                        byte [] newFileData = request.DownloadData (serverUri.ToString());
                        string fileString = System.Text.Encoding.UTF8.GetString(newFileData);
                        
                    }
                    catch (WebException esmeralda)
                    {
                        throw new Exception(esmeralda.ToString());
                    }

Das Problem hier liegt daran dass ich das byte Array habe, aber keine SaveFileDialog bekomme. Sonst funktioniet es einwandfrei.

Version 2:


 FtpWebRequest reqFTP;
                    try
                    {
                        //FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
                        FileStream outputStream = new FileStream(@"C:\\" + GetFileName(_orgpath), FileMode.Create);

                        reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(GetFTpPass() + _orgpath));
                        reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
                        reqFTP.UseBinary = true;
                        reqFTP.Credentials = new NetworkCredential(SData.LoginName, SData.Passwort);
                        FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                        Stream ftpStream = response.GetResponseStream();
                        long cl = response.ContentLength;
                        int bufferSize = 2048;
                        int readCount;
                        byte[] buffer = new byte[2048];

                        readCount = ftpStream.Read(buffer, 0, bufferSize);
                        while (readCount > 0)
                        {
                            outputStream.Write(buffer, 0, readCount);
                            readCount = ftpStream.Read(buffer, 0, bufferSize);
                        }

                        ftpStream.Close();
                        outputStream.Close();
                        response.Close();
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }

Hier liegt dass Problem daran dass ich vor dem Download den Zielpfad kennen muß. Aber wie es gibt ja keine SaveFileDialog fürs Web??

Unabhängig von den Fragen es geht hier um Daten die bis zu 100MB haben können, welcher Code ist besser?

danke

05.12.2007 - 10:12 Uhr

danke so wars,

03.12.2007 - 11:22 Uhr

zur Info:
ich habs jetzt mit einem FTP Server gemacht in dem ich vom Programm aus einen FTP User anlege.

23.11.2007 - 17:23 Uhr

im html Code selbst steht:
ftp://myloginname:myloginpass@127.0.0.1/meinriesenTeil.zip
Also richtig

angezeigt wird:
ftp://127.0.0.1/meinriesenTeil.zip
Also Falsch

Also wenn man auf den Link drückt muß man dass Passwort und den User eingeben, was ich vermeiden möchte.

23.11.2007 - 16:47 Uhr

HI,

ich hab diese Funktion im Code behind


 public string GetFTpPass()
        {
            string returnftp="ftp://"+SData.LoginName+":"+SData.LoginName+"@127.0.0.1/";
            return returnftp;
        }

welche ich mit diesem auf der Page aufrufe:


 <a href="<%#GetFTpPass()%><%# DataBinder.Eval(Container.DataItem, "I_path_org") %>" target="_blank">Mein ftpString</a>

Ich sollte eigentlich diesen String bekommen:
ftp://myloginname:myloginpass@127.0.0.1/meinriesenTeil.zip

Bekommen tu ich aber diesen:
ftp://127.0.0.1/meinriesenTeil.zip

Der Returnstring der Funktion ist ebenfalls:
ftp://myloginname:myloginpass@127.0.0.1/meinriesenTeil.zip

Die Seite löscht mir also diesen String:
myloginname:myloginpass@

wieso?

danke

21.11.2007 - 12:45 Uhr

Hi,

Zur Erklärung:
Ich programmiere gerade ein Programm in dem Bildfiles in jpg Dateien umgewandelt,in einen Ordner gespeichert und Thumbnails in einer WebApl. angezeigt werden.Das ganze wird in der DB mitgespeichert. zb:

Pfadklein: Imagedb/Test1/Vorschau/meinbild1.jpg
Pfadnorm: Imagedb/Test1/meinbild1.jpg
Pfad_Original: 192.168.1.240/Server/richtigeDatenbank/meinbild1.eps

In der Webaplikation soll man sich das Originalbild herunterladen können, aber wie kann ich das machen wenn das Bild ja im internen Netz liegt. Den ImageServer kann ich nicht im IIS integrieren und durch die Dateigröße der Bilder würde es keinen Sinn machen die Bilder doppelt zu speichere.

Sollte ich da was mit FTP machen oder habt ihr da eine bessere Lösung?

19.11.2007 - 14:39 Uhr

auch das löscht keine Files:


                IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Domain | IsolatedStorageScope.Assembly, null, null);
                isoStore.DeleteFile(myfilePath);

19.11.2007 - 14:36 Uhr

Ich hab das "glaub" ich gemacht wie du es vorgeschlagen hast.

ich hab dies in die Signatur geschrieben:


        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        internal static extern bool DeleteFile(string path); 

und den Aufruf so gestartet:


    DeleteFile(myfilePath);

Leider wird noch immer nichts gelöscht 😦

19.11.2007 - 11:30 Uhr

Ich hab mir gedacht ich starte einen Process und lösche mit einer Batch Datei.
Funtkioniert leider auch nicht da DOS diese Datei auch nicht löschen kann.

Kannst du die WIN 32 Funtkionen vielleicht ein bisschen genauer beschreiben.
Welche meinst du?

danke für deine Hilfe und Geduld.

19.11.2007 - 10:47 Uhr

Das gibts doch nicht im Explorer kann ich die Dateien ja auch löschen.

19.11.2007 - 10:33 Uhr

Ich will das verdammte File löschen Arggg

hier bekomm ich die Exception, was ja auch ok ist:


 private static Boolean checkDir(DirectoryInfo dir)
        {
            Boolean res = true;
            string myfilePath = dir.FullName + "\\Icon" + _hexIcon;
            try
            {
                
                string[] fileEntries = Directory.GetFiles(dir.FullName);
            }
            catch
            {
                File.Delete(myfilePath);
                checkDir(dir);
                res = false;
            }
            return res;
        }

in dem try check ich ob ein illegaler Pfad drinnen ist.
Dann kommt die Exception, was ja auch ok ist.
Danach will ich das File löschen.... und ich bekomm wieder
eine Exception. AHH

19.11.2007 - 10:11 Uhr

Super Idee. Danke

Der Hex Editor zeigt mit leider "." statt "" an. Macht aber glaub ich nichts.
Gut jetzt hab ich eine HexZahl die so aussieht: 49 63 6F 6E 0D

Habe das letzte zeichen mit dieser Funktion:


   public string GetStringfromHex()
        {
            string hex = "0D".ToUpper(); //Hex code für []
            string res = "";
            char c1;
            char c2=' ';

            for (int i = 0; i < hex.Length; i++)
            {
                switch (hex[i])
                {
                    case '0':
                    case '1':
                    case '2':
                    case '3':
                    case '4':
                    case '5':
                    case '6':
                    case '7':
                    case '8':
                    case '9':
                        c1 = (char)((int)hex[i] - (int)'0');
                        break;
                        default:
                        c1 = (char)((int)hex[i] - (int)'A');
                        break;
                }
                if (i % 2 == 0)
                {
                    c2 = (char)((int)c1 * 0x10);
                }
                else
                {
                    c2 += c1;
                    res += c2;
                }
            }
            return res; 
        }

umgewandelt und ich bekomm wirklich das geforderte .
Dieses prüfe ich dann so:


 try
                {
                   string myfilePath = dir.FullName + "\\Icon" + _hexIcon; // Pfad + Icon
                   if (File.Exists(myfilePath))
                   {
                        File.Delete(myfilePath);
                   }

                }
                catch (Exception y)
                {
                    MessageBox.Show(y.Message);
                }

Pfad stimmt, alles stimmt aber bei File.Exists kommt keine Rückmeldung???

19.11.2007 - 09:08 Uhr

Wie soll ich was Casten wenn ich es nicht anzeigen kann?
Mit Directory.GetFiles bekomm ich ja ne Argument Exception.

19.11.2007 - 08:58 Uhr

Es kommt noch dazu dass ich ja den Dateinamen programmiertechnisch nicht kenne.

das File heißt zb: c:\Dir\icon
aber dieses Zeichen "" kann ich im C# nicht anzeigen??
Gibts da vielleicht nen ASCI Code dafür??


if (File.Exists(dir+"/icon*"))
{
File.delete(dir+"/icon*");
}

Mit der Wildcard haut leider auch nicht hin 😦

19.11.2007 - 08:25 Uhr

Genau um das gehts, denn das File hat ja "invalid Characters"

16.11.2007 - 14:41 Uhr

naja das hat ja nichts mit dem apple zu tun. Ich möchte nur die Dateien löschen.
Mit dem Explorer gehts ja auch

16.11.2007 - 14:37 Uhr

Die Dateien werden vom MacOSX geschrieben und haben eigentlich keinen Zweck. Mit dem Explorer kann ich Sie löschen mit dot.net nicht.

16.11.2007 - 14:31 Uhr

Hi erstmal danke für den Code.

Ich weiß jetzt warum ich eine Argument Exception bekomme und zwar weil sich diese Datei in den Ordnern befindet.

icon

Ich kann sie aber auch nicht löschen. Denn sobald ich auf den Ordner zugreife kommt die Exception??

Hat da wer eine Lösung?

15.11.2007 - 18:12 Uhr

[EDIT]Abgeteilt von Prozess im Hintergrund starten[/EDIT]

Hi

Leider hab ich noch ein Problem:
hier der Code in der Schleife:


                Process IrvanPro = new Process();
                IrvanPro.StartInfo.UseShellExecute = false;
                IrvanPro.StartInfo.ErrorDialog = false;
                IrvanPro.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                IrvanPro.StartInfo.CreateNoWindow = true;
                IrvanPro.StartInfo.RedirectStandardOutput = true;
                IrvanPro.StartInfo.RedirectStandardError = true; 
                IrvanPro.StartInfo.FileName = @"C:\edit2.cmd";
                IrvanPro.StartInfo.Arguments = " " + _orginal_eps_path + " " + _pathnormal + " " + _pathThumbnails;
                IrvanPro.Start();
                IrvanPro.WaitForExit();
                _lbVortschritt.Items.Add(path);
                _lblCount.Text = _lbVortschritt.Items.Count.ToString();

Die letzten zwei Zeilen sollen mir den Vortschritt des Kopiervorgangs mitschreiben.
Das Problem ist dass erst nach der Schleife ein Text in meiner Listbox erscheint.