Avatar billede tinaw25 Nybegynder
21. marts 2013 - 13:52 Der er 13 kommentarer og
1 løsning

Jeg håber virkelig nogle kan hjælpe

Hejsa

Jeg har integreret i fckeditor i min admin del, og den snakker sammen med min database. Men når jeg skal uploade et billede ligger den billedet i admin/Images istedet for at ligge den i roden, men jeg kan simpelthen ikke se hvad det er jeg gør forkert?

Det er en kode jeg har fundet på nettet, og selv lagt ind.

Disse koder ligger alle i mappen admin/

Button upload
protected void btnUpload_Click(object sender, EventArgs e)
    {
        string baseurlsave = Server.MapPath(".") + "\\Images\\";
        string baseurldisplay = "blog/images/";
        HttpFileCollection hfc = Request.Files;
        foreach (string file in hfc)
        {
            if (hfc[file].ContentLength > 0)
            {
                string filename = Path.GetFileName(hfc[file].FileName);
                hfc[file].SaveAs(baseurlsave + filename);
            }
        }

        HyperLink hplImage = null;
        HyperLink hplDel = null;
        foreach (string file in Directory.GetFiles(baseurlsave))
        {
            string filename = Path.GetFileName(file);
            hplImage = new HyperLink();
            hplDel = new HyperLink();

            //Image
            hplImage.NavigateUrl = "java script:void()";
            hplImage.Attributes.Add("imgsrc", baseurldisplay + filename);
            hplImage.Text = filename;
            hplImage.CssClass = "imglink";

            //Delete link
            hplDel.NavigateUrl = "java script:void()";
            hplDel.Attributes.Add("img", filename);
            hplDel.Text = "delete";
            hplDel.CssClass = "dellink";

            phImages.Controls.Add(hplImage);
            phImages.Controls.Add(new LiteralControl(" "));
            phImages.Controls.Add(hplDel);
            phImages.Controls.Add(new LiteralControl("<br>"));
        }

    }



Upload.ashx

public void ProcessRequest(HttpContext context)
    {
        HttpPostedFile uploads = context.Request.Files["upload"];
        string CKEditorFuncNum = context.Request["CKEditorFuncNum"];
        string file = System.IO.Path.GetFileName(uploads.FileName);
        uploads.SaveAs(context.Server.MapPath(".") + "\\Images\\" + file);
        string url = "images/" + file;
        context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + url + "\");</script>");
        context.Response.End();
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
Avatar billede niklask Nybegynder
21. marts 2013 - 14:04 #1
Prøv at ændre Server.MapPath(".") til Server.MapPath("~")

Har ikke testet det.
Avatar billede tinaw25 Nybegynder
21. marts 2013 - 14:18 #2
Nu ligger den billedet ned i den rigtige mappe, men når jeg bruger min fckeditor i admin delen kan jeg ikke se det billede jeg ligger ind, så den må så stadigvæk kigge det forkerte sted?
Avatar billede niklask Nybegynder
21. marts 2013 - 14:34 #3
Kan du ikke kigge i kildekoden, og se hvad billedets source er. Det vil gøre det lidt nemmere at finde fejlen.
Avatar billede tinaw25 Nybegynder
21. marts 2013 - 14:37 #4
CKeditorImageManager.aspx

<script type="text/javascript">
    $(function () {
        CKEDITOR.replace('<%=txtCkEditor.ClientID %>');

        $('#dvImages A.imglink').click(function () {

            var oEditor = CKEDITOR.instances('<%=txtCkEditor.ClientID %>');
            var html = "<img src='" + $(this).attr("imgsrc") + "' />";

            var newElement = CKEDITOR.dom.element.createFromHtml(html, oEditor.document);
            oEditor.insertElement(newElement);
        });

        $('#dvImages A.dellink').click(function () {

            var img =  $(this).attr("img"); 
            $.ajax({
                type: "POST",
                url: "DeleteImage.ashx",
                data: "imgname="+img,
                contentType: 'application/x-www-form-urlencoded',               
                success: function(response) {                 
                    if(response == "true")
                    {
                        $('#dvImages A.dellink[img=\"'+img+'\"]').fadeOut();
                        $('#dvImages A.imglink[imgsrc*=\"'+img+'\"]').fadeOut();                 
                    }     
                },
                error: function(response) {
                    alert('There was an error. ' + response);
                }
            });
        });

    });
</script>

CKeditorImageManager.aspx.cs

protected void btnUpload_Click(object sender, EventArgs e)
    {
        string baseurlsave = Server.MapPath("~") + "\\Images\\";
        string baseurldisplay = "Images/";
        HttpFileCollection hfc = Request.Files;
        foreach (string file in hfc)
        {
            if (hfc[file].ContentLength > 0)
            {
                string filename = Path.GetFileName(hfc[file].FileName);
                hfc[file].SaveAs(baseurlsave + filename);
            }
        }

        HyperLink hplImage = null;
        HyperLink hplDel = null;
        foreach (string file in Directory.GetFiles(baseurlsave))
        {
            string filename = Path.GetFileName(file);
            hplImage = new HyperLink();
            hplDel = new HyperLink();

            //Image
            hplImage.NavigateUrl = "java script:void()";
            hplImage.Attributes.Add("imgsrc", baseurldisplay + filename);
            hplImage.Text = filename;
            hplImage.CssClass = "imglink";

            //Delete link
            hplDel.NavigateUrl = "java script:void()";
            hplDel.Attributes.Add("img", filename);
            hplDel.Text = "delete";
            hplDel.CssClass = "dellink";

            phImages.Controls.Add(hplImage);
            phImages.Controls.Add(new LiteralControl(" "));
            phImages.Controls.Add(hplDel);
            phImages.Controls.Add(new LiteralControl("<br>"));
        }

    }

Upload.ashx

public class Upload : IHttpHandler {

    public void ProcessRequest(HttpContext context)
    {
        HttpPostedFile uploads = context.Request.Files["upload"];
        string CKEditorFuncNum = context.Request["CKEditorFuncNum"];
        string file = System.IO.Path.GetFileName(uploads.FileName);
        uploads.SaveAs(context.Server.MapPath("~") + "\\Images\\" + file);
        string url = "Images/" + file;
        context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + url + "\");</script>");
        context.Response.End();
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}
Avatar billede niklask Nybegynder
21. marts 2013 - 14:42 #5
Som jeg lige kan se det, kigger den efter billeder i blog/images, hvor den burde lede i /images.

Prøv at slet blog/ fra:
string baseurldisplay = "blog/images/";
Avatar billede tinaw25 Nybegynder
21. marts 2013 - 14:48 #6
På det nye jeg lige har givet dig har jeg slettet det og det virker stadigvæk ikke :-(

Jeg kan ikke se mit billede når jeg uploader det i editoren, det virker som om den ikke kigger ned i root mappen, men i admin/Images
Avatar billede tinaw25 Nybegynder
21. marts 2013 - 14:51 #7
Men hvis jeg bare smider billedet ind, så kan jeg ikke se det i admin delen men virker fint på frontend delen
Avatar billede niklask Nybegynder
21. marts 2013 - 14:53 #8
Du kan se hvor den kigger hvis du kigger kildekoden på den renderede side, altså i din browser.

Der burde være <img src="?" /> med en forkert sti.

Ellers prøv at tilføj en / før Images/ i

string baseurldisplay = "/Images/";
Avatar billede tinaw25 Nybegynder
21. marts 2013 - 14:58 #9
Ude i frontend kigger den i den rigtige mappe nu.

Det der er problemet nu er at jeg kan ikke se billedet fra min admin del der er der bare et rødt kryds
Avatar billede tinaw25 Nybegynder
21. marts 2013 - 15:02 #10
jeg skrev ../Images så virker det


kast et svar og tusind tak for hjælpen!!!!!
Avatar billede niklask Nybegynder
21. marts 2013 - 15:03 #11
Kan du ikke højreklikke på det røde kryds og vise detaljer om det, og vende tilbage med den src der står, så vi kan finde ud af hvor den kigger?
Avatar billede tinaw25 Nybegynder
21. marts 2013 - 15:04 #12
Så ser den ikke billedet i frontend når jeg gør det
Avatar billede tinaw25 Nybegynder
21. marts 2013 - 15:07 #13
Hvor spøjst, nu virker det altså
Avatar billede niklask Nybegynder
21. marts 2013 - 15:08 #14
Super. Smider lige et svar.
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

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