Avatar billede Newbee1 Novice
05. februar 2014 - 18:26 Der er 5 kommentarer og
1 løsning

Upload filer MVC

Hej

Jeg bruger nedenstående code til at oploade filer, til mappen "content".

MVC4  Linq 2 SQL 

Den virker fint på local computer, men ikke når jeg har lagt den på en server.

Kan i se om jeg gør noget forkert, eller er det en fejl på serveren ?

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.IO;


    namespace CFire2.SupplyConUtils
    {
    public static class FileUpload
    {

        public static char DirSeparator =
        System.IO.Path.DirectorySeparatorChar;
        public static string FilesPath = "Content" +
        DirSeparator + "SupplyUpload" + DirSeparator;


        public static string UploadFile(HttpPostedFileBase file)

        {
            // Check if we have a file
            if (null == file) return "No File";


            // Make sure the file has content
            if (!(file.ContentLength > 0)) return "No File";


            string fileName = Path.GetFileName(file.FileName);
            string fileExt = Path.GetExtension(file.FileName);
           

            // Make sure we were able to determine a proper
            // extension
            if (null == fileExt) return "No file";



            // Check if the directory we are saving to exists
            if (!Directory.Exists(FilesPath))
            {
                // If it doesn't exist, create the directory
                Directory.CreateDirectory(FilesPath);
            }

            //// Set our full path for saving
            var path = Path.Combine(HttpContext.Current.Server.MapPath("~/Content/SupplyUpload"), fileName);
           

            if (File.Exists(path)) return "The file has already been uploaded!";


            // Save our file
 

            file.SaveAs(path);

            // Return the filename
            return fileName;


        }
        public static void DeleteFile(string fileName)
        {

            // Set our full path for deleting
            var path = Path.Combine(HttpContext.Current.Server.MapPath("~/Content/SupplyUpload"), fileName);
           

            // Don't do anything if there is no name
            if (fileName.Length == 0) return;



            // Check if our file exists

              if (File.Exists(path))
            {
                // Delete our file
               
                File.Delete(path);
            }
        }
    }
}
Avatar billede keysersoze Guru
05. februar 2014 - 18:31 #1
Du må næsten få en fejl du kan bruge til noget? Et gæt må være manglende rettigheder.
Avatar billede Newbee1 Novice
06. februar 2014 - 07:14 #2
Hej Keysersoze

Tak for dit svar, jeg flg meddelse, som jeg ikke kan bruge til meget:


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

Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".


<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.


<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>
Avatar billede keysersoze Guru
06. februar 2014 - 07:43 #3
Du kan jo prøve at gøre hvad der står - altså sætte customerrors mode til off i din web.config. Alternativt må du have en log du kan kigge i - eller du fanger fejlen i en try/catch og udskriver den pænt til skærmen.
Avatar billede Newbee1 Novice
06. februar 2014 - 09:56 #4
Hej Keysersoze

Tak for dit svar.

Jeg får en ny fejl meddelse " no access to folder",så du har ret
der mangler retigheder.


Jeg har lavet upload til folderen "Content".Jeg har læst at man måske kan flytte upload til "App data".


Vil prøve dette senere, ellers er det vel kun udbyder, der kan ændre dette ?
Avatar billede Newbee1 Novice
06. februar 2014 - 18:04 #5
Hej Keyserzoze


Det hjælper ikke at flytte til App data.


Men du skal have tak for hjælpen-


Kan jeg give dig point ?
Avatar billede keysersoze Guru
07. februar 2014 - 09:58 #6
Alt afhængig af udbyder kan du måske selv give rettigheder. Hvis App_Data fx har været slettet kan det være årsagen til de manglende rettigheder.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester