Přístup k textovému souboru   zodpovězená otázka

ASP.NET WebForms

Mám webové stránky testů (http://www.testiky.aspone.cz) na kterých mám možnost přidat test tak že se mi odešlou data do txt na webu a problém je tento: když odesílám data do txt tak se mi zobrazí že nemám práva pro přístup txt. Jak je mám udělit (stránky jsou na aspone.cz), jinak jak můžu udělat přes formulář novou stránku (nebo jiný způsob udělání testu)?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

txt je počítám název adresáře. Možností máte několik:

-databáze

-jeden xml/více soubor

-Uchovávání v nějaké třídě a při restartu serveru/průběžně to uložit.

Jinak jak to děláš ty, stačí si na aspone.cz povolit práva do složky. je to tam, i u free.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Mám textový soubor do kterého se uloží data z textboxů.

A prosím vás, vykejte mi.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Zkontroluj jsi zda mas na webovem servru (aspone) prava pro zapis do tebou (vytvorene / vybrane) slozky. Z bezpecnostnich duvodu je vetsinou standartne nastaveno "jen pro cteni".

Takoveto akce se casto provadi mimo webovy server kde je pouze datove uloziste.(Tam uz take jsou nastavena prava i pro zapis)

Napriklad kdyby "nahodou" nekdo zjistil url a mohl si soubor stahnout atd ...")

nahlásit spamnahlásit spam 0 odpovědětodpovědět

a když mám soubor v kořenovém adresáři ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Soubory, které chcete programově měnit, by neměly být v kořenovém adresáři, protože tam je z hlediska zabezpečení nevhodné mít nastavena práva zápisu. Takové soubory patří do složky App_Data, kam se k nim nikdo zvenčí nedostane a může tam sahat jen aplikace. Na mnoha hostinzích navíc do této složky práva zápisu nastavena mají již implicitně. Kdyžtak zkuste prohledat FAW daného hostingu nebo se zeptat na jejich podpoře, určitě budou vědět víc, tohle je u každého webhostingu jiné.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dal jsem to např. o složky images.

Na aspone jsem nastavil právo zápisu do složky.

A vypsalo mi to toto:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Could not find a part of the path 'c:\windows\system32\inetsrv\images\odeslanetestiky.txt'. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'c:\windows\system32\inetsrv\images\odeslanetestiky.txt'.

Source Error: 


Line 16:         Dim od23 As String = TextBox11.Text
Line 17:         Dim od24 As String = TextBox12.Text
Chyba: Line 18:         Dim zapispolozek As New IO.StreamWriter("images\odeslanetestiky.txt")
Line 19:         zapispolozek.WriteLine(t1)
Line 20:         zapispolozek.WriteLine(ot1)
 

Source File: D:\Websites\03e5d53545\www\createmy.aspx.vb    Line: 18 

Stack Trace: 


[DirectoryNotFoundException: Could not find a part of the path 'c:\windows\system32\inetsrv\images\odeslanetestiky.txt'.]
   System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +193
   System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) +1162
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) +65
   System.IO.StreamWriter.CreateFile(String path, Boolean append) +62
   System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) +58
   System.IO.StreamWriter..ctor(String path) +30
   Default2.Button1_Click(Object sender, EventArgs e) in D:\Websites\03e5d53545\www\createmy.aspx.vb:18
   System.EventHandler.Invoke(Object sender, EventArgs e) +0
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3053; ASP.NET Version:2.0.50727.3053 

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak pokud uz zrovna nejsi trochu ...

Tak se podivej kam to ukladas (nebo se to snazis ulozit)

'c:\windows\system32\inetsrv\images\odeslanetestiky.txt'

Je snad na slunce jasne, ze do c:\windows\system32 na servru nic ukladat nemuzes.


'chyba je na tomto radku 
Dim zapispolozek As New IO.StreamWriter("images\odeslanetestiky.txt")

'je treba pouzit Server.MapPath 
'nebo skutecnou absolutni cestu - 
'( v tvem pripade je to nejspis D:\Websites\03e5d53545\www\images\).
Dim zapispolozek As New IO.StreamWriter(Server.MapPath("~/images/odeslanetestiky.txt"))

Adresar images je v rootu webu a musi mit nastavena prava pro zapis. A take zkus znovu zvazit jeslty ti je jedno, ze to neukladas na bezpecne misto nebo ne.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Má to být takhle:

Dim zapispolozek As New IO.StreamWriter(Server.MapPath("~/images/odeslanetestiky.txt"))

nebo takhle:

Dim zapispolozek As New IO.StreamWriter(Server.MapPath "~/images/odeslanetestiky.txt")

Přijde mi blbé začít závorku a neuzavřít ji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Samozrejme ze to prvni, vypadla mi zavorka ... snad to prezijete =)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

<a href=http://2yd.net/mQ>penis enlargement exercises</a>

57walagiv3lto0xwbpas

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

A prosím vás, vikejte mi.

To zní dobře od člověka, který ani neví, jak se slovo vykat správně píše.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Zrovna jsem byl trochu ... ani nevím jak to nazvat.

Takže ještě jednou:

A prosím vás, vykejte mi.

nahlásit spamnahlásit spam 0 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback