IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
batman
Člen
Avatar
batman:12.5.2020 8:39

Zkoušel jsem implementovat funkci pro stahování do svého projektu Webbrowser v prvním případě jsem použil klasický Webbrowser z Visual Studia což je vlastně IE explorer starsiho typu a použil jsem Download Handler metodu bohužel nefunguje pak jsem zkoušel CefSharp webbrowser a použil jsem stejný postup bohužel také nefunguje hledal jsem i na stackoverflow jsou tam nejake rady bohužel yatím nic z toho nefungovalo nebo mně to skazilo celý kod a bylo třeba začít znovu poprosím vas někoho o radu nebo navod co stím děkuji předem za vaše odpovědi

 
Odpovědět
12.5.2020 8:39
Avatar
batman
Člen
Avatar
batman:12.5.2020 8:43

Prosím o radu chci implementovat funkci stahování do prohlížeče webu použil jsem klasický webbrowser ve Visual Studio a v druhém projektu CefSharp webbrowser hledal jsem odpověd i na stacoverflow ale bohužel nic z toho nefunguje děkuji za odpovědi

 
Nahoru Odpovědět
12.5.2020 8:43
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na batman
Tadeáš Burda :12.5.2020 15:17

Nechapem ta, akoze chces aby ti isiel stiahnut subor z tvojho webu? To das iba download do linku. Srry ale fakt ta nechapem

 
Nahoru Odpovědět
12.5.2020 15:17
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:12.5.2020 15:56

Zkus popsat, co presne mas a co potrebujes, pripadne pridat nejaky kod. Treba to z kodu bude jasnejsi.

Zkusim ti dat par priklad z php. Treba najses podobne funkce v asp, o kterem zase tolik nevim.

<a href="soubory/soubor.jpg">stahni odkazem</a>

<a href="stahni.php?file=soubor.jpg">stahni odkazem</a>
<?php
// -- stahni.php --
$file = isset($GET['file']) ? trim($GET['file']) : '';
if ($file=='') exit();
$path = 'soubory/';
$content  = file_get_contents($path.$file); // vezmi obsah souboru
// a zbytek astavuje hlavicky pro stahovani souboru
        ob_clean();
        header('Content-Description: File Transfer');
        header('Content-Transfer-Encoding: binary');
        header('Content-Encoding: '.$charset);
        header('Content-Type: '.$type.'; charset='.$charset);
        header('Content-Disposition: attachment; filename="'.$file.'"');
        header('Content-Length: '.$size);
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        //header("Cache-Control: no-store, no-cache");
        header('Pragma: public');
        header('Expires: 0');
        echo $content;
        exit();
?>

<!-- a zde nekolik funkci v js pro stazeni souboru -->
<!-- je to ale z nejake me knihovny, takze si to budes muset nejak preopravit :) -->
<script>
this.func.fileFromUrl = function(path)
        {
        root.func.logMsg('fileFromUrl', 'Reading start...');
        root.func.logMsg('fileFromUrl', '"'+path+'"');
//      opt.log('classReader.func.fileFromUrl: File reading start...');
        root.req = new XMLHttpRequest();
        root.req.responseType = 'blob'; // pro FileReader
        root.req.onload  = root.opt.cbRequest;
        root.req.onerror = root.opt.cbRequestError;
        root.req.error_path = path;
        root.req.open('GET', path, true);
        root.req.send();
        }

this.func.fileFromInput = function(elInput)
        {
        root.opt.log('classReader.func.fileFromInput: File reading...');
        var file = elInput.files[0];
        if (!file)
                {
                root.opt.log('classReader.func.fileFromInput: Chyba, neni soubor.');
                return;
                }
        root.reader = new FileReader();
        root.reader.onload = root.opt.cbReader;
        root.reader.readAsText(file,'windows-1250');
        }

this.func.cbDestroyClickedElement = function (event)
        {
        var event = event || window.event;
        document.body.removeChild(event.target);
        }

this.func.saveTextAsFile = function (file_name, textToWrite)
        {
        var textFileAsBlob, browser_name, el;
        var BOM = "\uFEFF";
        textToWrite    = BOM + textToWrite;
        textFileAsBlob = new Blob([textToWrite], {type:'text/plain;charset=utf-8;'});   // ulozi jako utf8 bez BOM, ten se musi pridat
//      textFileAsBlob = new Blob([textToWrite], {type:'text/plain;windows-1250;'});
//      textFileAsBlob = new Blob([textToWrite], {type:'text/plain;'});
//      textFileAsBlob = new Blob([textToWrite], {type:'text/plain;windows-1250;'});
        browser_name   = navigator.appName;
        if (browser_name=='Microsoft Internet Explorer')
                {
                window.navigator.msSaveBlob(textFileAsBlob, file_name);
                return;
                }
        el = document.createElement('a');
        el.download  = file_name;
        el.innerHTML = 'Download File';
        if (window.webkitURL != null)   // chrome
                {
                el.href = window.webkitURL.createObjectURL(textFileAsBlob);
                }
        else    {       // Firefox
                el.href    = window.URL.createObjectURL(textFileAsBlob);
                el.onclick = root.func.cbDestroyClickedElement;
                el.style.display = 'none';
                document.body.appendChild(el);
                }
        el.click();
        }

this.func.void = function()
        {
        }

</script>
 
Nahoru Odpovědět
12.5.2020 15:56
Avatar
Ghst
Člen
Avatar
Ghst:12.5.2020 16:48

Batman se pokouší napsat "vlastní" webový prohlížeč za pomoci DOT.NET komponenty WebBrowser control. Pravděpodobně implementuje funkci pro stahování souboru, tak jak ji známe třeba z chromu.

Zkus postnout svůj kód.

 
Nahoru Odpovědět
12.5.2020 16:48
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Ghst
Tadeáš Burda :12.5.2020 17:22

Aha, už chápu

 
Nahoru Odpovědět
12.5.2020 17:22
Avatar
Odpovídá na batman
Ondřej Šrytr:12.5.2020 20:40

Záleží, co všechno daná komponenta nabízí. Zkoušel jsi tohle? https://stackoverflow.com/…4289428/down. Bude to samozřejmě potřebovat nějaký čas a trošku se v tom pohrabat. :-)

 
Nahoru Odpovědět
12.5.2020 20:40
Avatar
batman
Člen
Avatar
batman:13.5.2020 14:28

Určitě to zkusím Ondřeji myslim že už jsem to četl a možná i použil ale zkusím to znovu možná se zadaří a děkuji všem za odpovědi a omlouvám se že nebylo hned jasné o co mi jde ale Ghst na to kápnul ano chci funkci stahováni do mého webprohlížeče tak jak ji normálně známe z ostatních prohlížečů prostě dáš na jakékoli stránce download na jakýkoli soubor pokud je ke stažení a ono to stahne ten soubor mám i stažený prohlížeč od jiného developera který je udělaný taky s tím CefSharp komponentem a psal že ma hotovou funkci stahování tak jsem to zkusil ve Visual Studiu spustit a nemaká mu to moc dobře (pada mu to na http strankach nekterych a php stranky to otvírá ale nestáhne skoro nic pokud se spustí stahování tak po par vteřinách spadne s exception error výpisem) možná je problém pravě v tom komponentu ještě jednou všem děkuji a pokud by jste mněli nejaké nápady klidně napište prečtu si je

 
Nahoru Odpovědět
13.5.2020 14:28
Avatar
batman
Člen
Avatar
batman:13.5.2020 14:43
using CefSharp;
using CefSharp.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Moj_Chrome
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        ChromiumWebBrowser chrome;

        private void Form1_Load(object sender, EventArgs e)
        {
            CefSettings settings = new CefSettings();
            Cef.Initialize(settings);
            txtUrl.Text = "https://www.google.com";
            chrome = new ChromiumWebBrowser(txtUrl.Text);
            this.pContainer.Controls.Add(chrome);
            chrome.Dock = DockStyle.Fill;
            chrome.AddressChanged += Chrome_AddressChanged;
        }

        private void Chrome_AddressChanged(object sender, AddressChangedEventArgs e)
        {
            this.Invoke(new MethodInvoker(() =>
            {
                txtUrl.Text = e.Address;
            }));
        }

        private void btnGo_Click(object sender, EventArgs e)
        {
            chrome.Load(txtUrl.Text);
        }

        private void btnRefresh_Click(object sender, EventArgs e)
        {
            chrome.Refresh();
        }

        private void btnForward_Click(object sender, EventArgs e)
        {
            if (chrome.CanGoForward)
                chrome.Forward();
        }

        private void btnBack_Click(object sender, EventArgs e)
        {
            if (chrome.CanGoBack)
                chrome.Back();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Cef.Shutdown();
        }

        private void btnHome_Click(object sender, EventArgs e)
        {
            chrome.Load(txtUrl.Text = "https://www.google.com");
        }
    }
}
 
Nahoru Odpovědět
13.5.2020 14:43
Avatar
batman
Člen
Avatar
batman:13.5.2020 14:46

Funkce stahování tam v tomhle kodu není kvůli spoustě chyb musel jsem to vše smazat a nechat takhle na prohlížení to je super jen kdyby to stahovalo

 
Nahoru Odpovědět
13.5.2020 14:46
Avatar
batman
Člen
Avatar
batman:22.5.2020 10:40

Funkci stahování už mám hotovou a stahuje to soubory testoval jsem to ještě doladit aby se to zobrazovalo jako v ostatních prohlížečích a hotovo všem děkuji a pomohlo mi tohle od Ondřeje Šrytra
https://stackoverflow.com/…arp-winforms jen jsem to musel pochopit o co tam jde a funguje to

 
Nahoru Odpovědět
22.5.2020 10:40
Avatar
Odpovídá na batman
Ondřej Šrytr:22.5.2020 21:45

Tak to jsem rád, že ti to pomohlo a vyřešil jsi to. :)

 
Nahoru Odpovědět
22.5.2020 21:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.