Outlook web app: download the image instead of displaying it

In the Outlook web app, when I click on an image I got, it downloads, instead of showing me the image …
Is there something to do?

Thank you

web hosting: how can a file download link download an old file that doesn't exist?

At the beginning of last year, I created a website that parses a CSV file and parses / displays it in a certain way for internal use. A page on this website provides a upload / download function so that the CSV file can simply be updated from the front-end. This part has worked well until today. I must have changed something while working that has affected the download, but for the life of me I can't think what.

I use a PHP copy function to get the file from a form and upload it to the server. This works fine, I can select a new CSV file on the front-end web page I have created and it loads fine. Then I go to the CPanel file manager, double check the file and know that it is the same new file that I just uploaded due to the changes I made. When PHP functions load it, rename it with a certain name overwrites the previous version. So to download it the front-end web page has a simple static link to the CSV file.

Now understand this: From somewhere today, every time I click on that link, it downloads the previous version from the file I have literally reviewed everything I can think about 25 times:

  • The website domain is an additional domain, DNS is all correct.
  • The plugin configuration in CPanel still points to the folder I am using.
  • The link on the website is absolutely correct, and it's the same when I inspect the HTML.
  • I have turned off caching .htaccess, deleted my cookies for this site.
  • I tried to delete the CSV file completely.
  • I tried to open in an incognito window

However, despite each and every one of these, it still downloads the old file, and when I check CPanel the new file is there with the new details and the old one doesn't exist.

I thought it would be smart: in CPanel I copied the file and renamed it: I tried to download it using the same link style (only renamed) and instead this brings me to the root web page of the site, although I have not been configured redirects.

I am completely stumped. I have checked several times that the link is correct, that I am looking at the correct file directory, that everything matches. And it does.Just that somewhere, somehow, the wrong file is being downloaded and I have no idea where it came from.

apache 2.2 – Download PHP file uses high CPU and RAM

My Apache server statistics

CPU 2-core
PHP 7.3
Centos 7 64bit

File upload settings in Php.ini

max_execution_time = 300;
max_input_time = 60 ;
memory_limit = 1000M ;
post_max_size = 2000M
upload_max_filesize = 1500M

I use this PHP code to download files.

   File Not Found");
        $this->size = filesize($file);
        $this->file = fopen($file, "r");
        $this->boundary = md5($file);
        $this->delay = $delay;
        $this->name = basename($file);
    public function process() {
        $ranges = NULL;
        $t = 0;
        if ($_SERVER('REQUEST_METHOD') == 'GET' && isset($_SERVER('HTTP_RANGE')) && $range = stristr(trim($_SERVER('HTTP_RANGE')), 'bytes=')) {
            $range = substr($range, 6);
            $ranges = explode(',', $range);
            $t = count($ranges);
        header("Accept-Ranges: bytes");
        header("Content-Type: application/octet-stream");
        header("Content-Transfer-Encoding: binary");
        header(sprintf('Content-Disposition: attachment; filename="%s"', $this->name));
        if ($t > 0) {
            header("HTTP/1.1 206 Partial content");
            $t === 1 ? $this->pushSingle($range) : $this->pushMulti($ranges);
        } else {
            header("Content-Length: " . $this->size);
    private function pushSingle($range) {
        $start = $end = 0;
        $this->getRange($range, $start, $end);
        header("Content-Length: " . ($end - $start + 1));
        header(sprintf("Content-Range: bytes %d-%d/%d", $start, $end, $this->size));
        fseek($this->file, $start);
        $this->readBuffer($end - $start + 1);
    private function pushMulti($ranges) {
        $length = $start = $end = 0;
        $output = "";
        $tl = "Content-type: application/octet-streamrn";
        $formatRange = "Content-range: bytes %d-%d/%drnrn";
        foreach ( $ranges as $range ) {
            $this->getRange($range, $start, $end);
            $length += strlen("rn--$this->boundaryrn");
            $length += strlen($tl);
            $length += strlen(sprintf($formatRange, $start, $end, $this->size));
            $length += $end - $start + 1;
        $length += strlen("rn--$this->boundary--rn");
        header("Content-Length: $length");
        header("Content-Type: multipart/x-byteranges; boundary=$this->boundary");
        foreach ( $ranges as $range ) {
            $this->getRange($range, $start, $end);
            echo "rn--$this->boundaryrn";
            echo $tl;
            echo sprintf($formatRange, $start, $end, $this->size);
            fseek($this->file, $start);
            $this->readBuffer($end - $start + 1);
        echo "rn--$this->boundary--rn";
    private function getRange($range, &$start, &$end) {
        list($start, $end) = explode('-', $range);
        $fileSize = $this->size;
        if ($start == '') {
            $tmp = $end;
            $end = $fileSize - 1;
            $start = $fileSize - $tmp;
            if ($start < 0)
                $start = 0;
        } else {
            if ($end == '' || $end > $fileSize - 1)
                $end = $fileSize - 1;
        if ($start > $end) {
            header("Status: 416 Requested range not satisfiable");
            header("Content-Range: */" . $fileSize);
        return array(
    private function readFile() {
        while ( ! feof($this->file) ) {
            echo fgets($this->file);
    private function readBuffer($bytes, $size = 1024) {
        $bytesLeft = $bytes;
        while ( $bytesLeft > 0 && ! feof($this->file) ) {
            $bytesLeft > $size ? $bytesRead = $size : $bytesRead = $bytesLeft;
            $bytesLeft -= $bytesRead;
            echo fread($this->file, $bytesRead);
$file = '/home/file.zip';
$download = new ResumeDownload($file, 50000); //delay about in microsecs 

it is working perfectly but the problem is that. when several files download our RAM and CPU 100%.
Any solution to solve it.

Browsers download malware

Edge technical report says "browsers download malware"

Mainly it is the Chrome browser.

c ++ – simple parallel download using a connection group class using cpprestsdk

The following is a simple class to establish multiple http connections, mainly to download a list of small files:


using namespace utility;                    // Common utilities like string conversions
using namespace web;                        // Common features like URIs.
using namespace web::http;                  // Common HTTP functionality
using namespace web::http::client;          // HTTP client features
using namespace concurrency::streams;       // Asynchronous streams

    class ConnectionPool
    ConnectionPool(size_t nWorkers, std::wstring baseUri) :BaseUri(baseUri)
        for (size_t i = 0; i < nWorkers; i++) Pool.emplace_back(http_client(baseUri), http_request(methods::GET));

    void ResetState(size_t nWorkers, std::wstring baseUri)
        BaseUri = baseUri;
        nDone = 0;
        for (size_t i = 0; i < nWorkers; i++) Pool.emplace_back(http_client(baseUri), http_request(methods::GET));

    void ResizePool(size_t nWorkers)
        Pool.resize(nWorkers, { http_client(BaseUri) , http_request(methods::GET) });

    void DownloadAsync(std::vector Uris, const Function& f)//Not implemented
        WorkItems = Uris;
        const size_t limit = (std::min)(Pool.size(), WorkItems.size());
        for (size_t i = 0; i < limit; i++) assignWork(i, f);

    void DownloadSync(const std::vector Uris, const Function& f)
        std::wcout << "*DownloadSync Started*" << std::endl;
        WorkItems = Uris;
         for (size_t i = nDone = 0, limit = nActive = std::min(Pool.size(), WorkItems.size()); i < limit; ++i) assignWork(i, f);

        std::unique_lock lk(m1);
        cv.wait(lk, (&)() { return nActive == 0; });
        std::wcout << "*DownloadSync Ended*" << std::endl;

    void assignWork(int pidx, const Function& f)
        //m2 isn't needed, right?!
        if (nDone >= WorkItems.size())
            std::lock_guard lk(m1);
        const auto wItem = WorkItems(nDone);
        int cIdx = nDone;

        std::wcout << L"Worker " << pidx << L": Assigning/t" << wItem << L" succeed" << std::endl;
        auto& (client, request) = Pool(pidx);

        client.request(request).then((=)(pplx::task   responseTask) {
            try {
                if (auto response = responseTask.get(); response.status_code() == http::status_codes::OK)
                    f(response, cIdx);
                    std::wcout << L"Worker " << pidx << L": Downloading/t" << wItem <> Pool;
    std::vector WorkItems;
    std::wstring BaseUri;
    std::mutex m1/*,m2*/;
    std::condition_variable cv;
    std::atomic nActive = 0, nDone = 0;

int main()
ConnectionPool con(n, L"base url");
        con.DownloadSync(urls, ()(http_response res, int idx)
                auto outFile = fstream::open_ostream(std::to_wstring(idx) + L".ext").get();

Internet Download Manager v6.36 Build 5 Full Multilingual Incl – 100% Discount | Proxies123.com

Full Internet Download Manager (IDM)
It is a device to develop download speeds on numerous occasions, resume and schedule downloads.
Full error recovery and resume ability will restart interrupted or interfere with downloads due to membership loss,
Compose problems, PC shutdowns or unexpected power outages. The essential hands-on UI makes IDM simple and easy to use.

IDM has a smart reasoning download method that revives the specialist that features clever and engaging record splitting and secure multi-part download development to stimulate your downloads. It is nothing like other download executives and Internet operators. The Download Download Manager logically downloads reports during the download process and reuses the available relationship without additional interfaces and login steps to achieve the best execution of the expansion.
IDMAN supports intermediate servers, ftp and http programs, firewalls, redirects, invitations, endorsements, sound and video getting ready. IDM impeccably facilitates in Microsoft Internet Explorer, Netscape, MSN Explorer, AOL, Opera, Mozilla, Mozilla Firefox, Mozilla Firebird, Avant Browser, MyIE2 and all other conspicuous projects to normally manage your downloads. In the same way, you can move records or use the Internet Download Manager from the request line. Internet Download Manager can dial your modem at the set time, download the reports you need, and then hang up or even shutdown your PC when it's configured.
The interpretation incorporates the Windows 10 image, incorporates the IDM download board for web players. In addition, it has full support for Windows 8.1 (Windows 8, Windows 7 and Vista), page grabber, redesigned scheduler and support for MMS shows. The new structure similarly incorporates an improved mix for IE 11 and IE-based projects, an updated and redesigned download engine, exceptional coordination moved into each newer program, improved toolbar, and a host of new and updated incorporations.
Software license: full (all options)
Price: $ 24.95
Discount: 100% discount

download gestyy.com/w9sZNF

High quality online Youtube to Mp3 converter

YTB ​​Converter is a free online YouTube to MP3 converter that helps you convert videos from YouTube, Facebook, Instagram and other social networking sites. This the best YouTube video downloader allows you to download YouTube in MP4, MP3, AVI, WAV, etc. format.


plugins – Restrict access / Limit directory for WordPress Download Manager

In Word Press Download Manager the plugin has many options for adding files, but in server file browser you can browse my full cpanel account. It shows maindomain.com and other domains also on your server.

How can I limit / specify the server directory for the plugin or deny full access to the server in the server file selector?

I have tried many codes in htacess but none worked. I don't have much knowledge about the server, I just searched and tried a lot of codes that restrict the / server directory. But I failed.

I hope someone helps me.

Thank you

I need to download high quality images of my paintings in galleries and museums, should I use Snapseed or Photoshop?

I think the pixel adjustment of the images in my paintings is difficult in both photos and Snapseed, do you recommend PhotoExpress?

Windows 10 – Online Download: How to sync and skip duplicates between directories

I have a url link that has 8 directories with files in them. I want to download these files to my desktop HDD. I have to enter a username and password to enter the URL and access the directories. In Directory # 1, there are 80 files. In Directory # 2, there are 90 files. 80 files in Directory # 2 are exactly the same as 80 files in Directory # 1. But also in Directory # 4, 6 and 8. There are also duplicates present from other Directories in the URL, but all duplicate files share the same name respectively. I just want a copy of a file that has its unique name. So after it is first downloaded to a particular directory, any file with the same name should not be downloaded again.

For my computer setup I run Windows 10 Pro x64. I tried the following code, but it doesn't avoid duplicates between directories:

wget --user=NAME --password='PASSWORD' -nc URL

Is there a script (or two) that I need to solve this problem? Or something more than wget? Thank you.