35 messaggi dal 06 ottobre 2007
Ciao a tutti.

Con ASP.NET 2.0 Server.MapPath(percorsofile); funzionava e ti ritornava il percorso del file da caricare.

Ora sto programmando con .net 3.5 e dice che non esiste Server.

Qualcuno saprebbe aiutarmi? Come fare a ritornare il percorso?

Ecco lo script:


string strSaveFileAs;
            //strSaveFileAs = Server.MapPath(("uploads/" + myFileUpload.FileName));
            strSaveFileAs = Server.MapPath(("uploads/" + myFileUpload.FileName));
            lblFileName.Text = myFileUpload.PostedFile.FileName;
            lblFileType.Text = myFileUpload.PostedFile.ContentType;
            int i = myFileUpload.PostedFile.ContentLength;
            lblFileSize.Text = i.ToString();
            try
            {
                if (myFileUpload.HasFile)
                {
                    myFileUpload.SaveAs(strSaveFileAs);
                    strStatusMessage = ("Il file è stato salvato con successo: " + strSaveFileAs);
                }
                else
                {
                    strStatusMessage = "Non hai selezionato nessun file da salvare.";
                }
            }
            catch (Exception Ex)
            {
                strStatusMessage = ("PROBLEMA. Impossibile caricare il file.  " + ("Errore dovuto da: " + Ex.Message));
            }
            finally
            {
                lblSaveResults.Text = strStatusMessage;
            }

438 messaggi dal 04 agosto 2002
Contributi
ciao,

.net 3.5 è un'estensione del framework 2.0 non è un nuovo framework. Ciò significa che l'oggetto Server continua ad esistere ed a funzionare esattamente come prima. Commentando server.mappath il resto del codice funziona correttamente?

v
Non capisco qual'è tuo problema :
si usa cosi es

  string filepath = Server.MapPath("~/xml/" + nomefile+ ".xml");


Ciao

Corso SEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
Forex
3.095 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

molto strano, Server è una proprietà dell'oggetto Page quindi devi ritrovartela per forza. Per caso sei in uno user control o in un custom control?

HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
22 messaggi dal 04 settembre 2008
Ciao.

Funziona benissimo su pagine .aspx con codice c# separato.

Mentre qûesto codice si trova in una web part!!

Cambia qcl?

saluti e grazie
Cosa vuol dire questo codice si trova in una webpart???

è all'interno di un evento relativo alla webpart? qual'è il problema ? non ti prende correttamente il percoso?

Ciao

Corso SEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
Forex
3.095 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

prova con System.Web.HttpContext.Current.Server.MapPath

HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
22 messaggi dal 04 settembre 2008
Si trova in un metodo, che viene richiamato dall'evento Button_Click...
È così difficile da capire?

using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
using System.Security.Principal;
using System.Web.Security;

namespace Tools
{
    [Guid("978f2abe-9efe-4d39-b2a4-15afb5352b81")]
    public class BachecaElettronica : System.Web.UI.WebControls.WebParts.WebPart
    {
        public BachecaElettronica()
        {
        }

        #region DICHIARAZIONE

        //stringa di connessione al database
        private string stringaDiConnessione = "Data Source=sgv003;Initial Catalog=Tools;Integrated Security=True";
        //percorso allegato
        protected string percorsoAllegato = string.Empty;
        //utente autenticato
        protected string Utente = string.Empty;
        //label
        protected Label lblAnnuncio = new Label();
        protected Label lblUploadFile = new Label();
        //textbox
        protected TextBox txtAnnuncio = new TextBox();
        //uploadfile
        protected FileUpload UploadFile = new FileUpload();
        //botton
        protected Button btnConferma = new Button();
        protected Button btnAnnulla = new Button();

        [WebBrowsable(true),
        WebDisplayName("Stringa di Connessione"),
       WebDescription("Inserire Stringa di Connessione"),
        Personalizable(PersonalizationScope.User)]

        public string CNString //per modificare la stringa di connessione tramite web
        {
            get { return this.stringaDiConnessione; }
            set { this.stringaDiConnessione = value; }
        }
        #endregion DICHIARAZIONE

        #region INIZIALIZZAZIONE

        protected override void CreateChildControls()
        {
            //lblAnnuncio
            lblAnnuncio.ID = "lblAnnuncio";
            lblAnnuncio.Width = 500;
            lblAnnuncio.Text = "Inserire qui sotto il testo dell'annuncio";
            this.Controls.Add(lblAnnuncio);
            //txtAnnuncio
            txtAnnuncio.ID = "txtAnnuncio";
            txtAnnuncio.Width = Unit.Pixel(600);
            txtAnnuncio.Height = Unit.Pixel(250);
            txtAnnuncio.TextMode = TextBoxMode.MultiLine;
            this.Controls.Add(txtAnnuncio);

            //lblUploadFile
            lblUploadFile.ID = "lblUploadFile";
            lblUploadFile.Width = 300;
            lblUploadFile.Text = "Eventualmente caricare un allegato";
            this.Controls.Add(lblUploadFile);
            //UploadFile
            UploadFile.ID = "UploadFile";
            UploadFile.Width = 300;
            this.Controls.Add(UploadFile);

            //button
            btnConferma.Text = "Salva annuncio";
            btnConferma.Click += new EventHandler(btnConferma_Click);
            //button
            btnAnnulla.Text = "Annulla";
            btnAnnulla.Click += new EventHandler(btnAnnulla_Click);
            this.Controls.Add(btnAnnulla);
        }
        #endregion INIZIALIZZAZIONE

        protected override void OnLoad(System.EventArgs e)
        {
            base.OnLoad(e);
        }   //non utilizzato ancora

        #region CODICEHTML

        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            writer.Write("<center><table><tr><td height=50></td></tr><tr><td><h2 style=\"text-align=center; color=gray\">Inserimento annuncio in Bacheca</h2></td></tr><tr><td>");
            lblAnnuncio.RenderControl(writer);
            writer.Write("</td></tr>");

            writer.Write("<tr><td>");
            txtAnnuncio.RenderControl(writer);
            writer.Write("</td></tr>");

            writer.Write("<tr><td>");
            lblUploadFile.RenderControl(writer);
            writer.Write("</td></tr>");

            writer.Write("<tr><td>");
            UploadFile.RenderControl(writer);
            writer.Write("</td></tr>");

            writer.Write("<tr><td>");
            btnConferma.RenderControl(writer);
            writer.Write("&nbsp&nbsp&nbsp&nbsp");
            btnAnnulla.RenderControl(writer);
            writer.Write("</td></tr></table></center>");

        }
        #endregion CODICEHTML

        #region EVENTOUPLOAD
        protected void CaricaAllegato()
        {
            //Se FU contiene un file.
            if (UploadFile.HasFile)
            {
                //Definisco l'indirizzo della cartella dove le immagini verranno salvate
                string cartellaDestinazione = "~/immagini/";

                //Definisco l'indirizzo della cartella più il nome del file che carico.
                //Tramite il parametro FileName ricavo il nome del file che sto caricando.
                string nomeCartellaPiuNomeFile = cartellaDestinazione + UploadFile.FileName;

                //Carico e salvo il file tramite il metodo SaveAs. Come parametri gli passo
                //nomeCartellaPiuNomeFile all'interno di Server.MapPath() che mi ritorna 
                //la posizione della mia root sul server.
                UploadFile.SaveAs(nomeCartellaPiuNomeFile); //MapPathSecure

                //Passo il nome del file che sto caricando in maniera tale
                //che cambia il valore che verrà inserito nella query.
                percorsoAllegato = cartellaDestinazione + UploadFile.FileName;

                //inserisco l'utente
                IPrincipal user = this.Context.User;
                Utente = user.Identity.Name;
            }
            else 
            {
                percorsoAllegato = "Non ci sono allegati per questo annuncio";

                //inserisco l'utente
                IPrincipal user = this.Context.User;
                Utente = user.Identity.Name;  
            }
        }
        #endregion EVENTOUPLOAD

        protected void InserisciAnnuncio(string testo, string utente, string allegato)
        {
            SqlConnection connessione = new SqlConnection(stringaDiConnessione);
            connessione.Open();
            string strQuery = "INSERT INTO Annunci (annuncio_data, annuncio_testo, annuncio_utente, annuncio_allegato, annuncio_stato) VALUES ('GETDATE()', '" + testo + "','" + utente + "','" + allegato + "', 'Non scaduto')";
            SqlCommand commando = new SqlCommand(strQuery, connessione);
            commando.ExecuteScalar();
            connessione.Close();
        }
        #region EVENTIBOTTONI

        protected void btnConferma_Click(object sender, EventArgs e)
        {
            CaricaAllegato();
            InserisciAnnuncio(txtAnnuncio.Text, Utente, percorsoAllegato);
        }
        protected void btnAnnulla_Click(object sender, EventArgs e)
        {

        }
        #endregion EVENTIBOTTONI
    }
}


Proverò come mi hai suggerito. farò sapere.

Comunque il codice funziona se lo uso in una pagina .apsx con codice c# in file separato!

Mentre nella web part mi dà errore, e solo su Server.MapPath!

Non riconosce Server! E neanche Intellisense non lo trova.
Modificato da sharepointhelp il 19 settembre 2008 14.54 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC