Skip to main content

Android Studio WebView - Downloading files with admin-ajax.php extension

I've been learning Android Studio (I'm not an expert). However, I managed to code my WebView app from a website and I can't make it download the files as their original file names... For some reason I'm getting an "admin-ajax.php" file in return.

This is the code on MainActivity.java:

  mywebView.setDownloadListener(new DownloadListener() {
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long l) {
            //file name
            String fileName = URLUtil.guessFileName(url,contentDisposition,getFileType(url));
            sFileName = fileName.substring(fileName.lastIndexOf('/')+1);
            sURL = url;
            sUserAgent = userAgent;

            //check android version
            if (Build.VERSION.SDK_INT>= Build.VERSION_CODES.M){
                if (ContextCompat.checkSelfPermission( MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE)
    ==PackageManager.PERMISSION_GRANTED){
                    downloadFile(fileName,url,userAgent);
                }else {
                    requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}
                    ,  1001);
                    }
                }else{
                    downloadFile(fileName,url,userAgent);

                }
            
            }

        public void onPageStarted(WebView view,String url, Bitmap favicon){
            onPageStarted (view,url, favicon);
        }

        });

    }

@Override
public void onBackPressed() {
    if (webView.canGoBack())
        webView.goBack();
    else
    super.onBackPressed();
}

public String getFileType(String url){
    ContentResolver contentResolver = getContentResolver();
    MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
    return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(Uri.parse(url)));
}

    private void downloadFile(String fileName, String url, String userAgent){
        try {
            DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
            DownloadManager.Request request = new DownloadManager.Request (Uri.parse(url));
            String cookie  = CookieManager.getInstance().getCookie(url);
            request.setTitle(fileName)
                    .setDescription("is being downloaded")
                    .addRequestHeader("cookie",cookie)
                    .addRequestHeader("User - Agent", userAgent)
                    .setMimeType(getFileType(url))
                    .setAllowedOverMetered(true)
                    .setAllowedOverRoaming(true)
                    .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE
                    |DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                    downloadManager.enqueue(request);
            sURL = "";
            sUserAgent = "";
            sFileName = "";
            Toast.makeText( this, "Download Started", Toast.LENGTH_SHORT).show();

        }catch (Exception ignored){
            Toast.makeText( this, "error"+ignored, Toast.LENGTH_SHORT).show();

        }
    }


public void onRequestPermissionResult(int requestCode, @NonNull String [] permissions, int[] grantResults){
    super.onRequestPermissionsResult(requestCode,permissions,grantResults);
    if (requestCode==1001){
        if (grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){
            if (!sURL.equals("")&&!sFileName.equals("")&&!sUserAgent.equals("")){
                downloadFile(sFileName,sURL,sUserAgent);
            }
        }
    }
}

What could be the issue?

Thank you everyone for the support.

Kind regards,



source https://stackoverflow.com/questions/69272708/android-studio-webview-downloading-files-with-admin-ajax-php-extension

Comments

Popular posts from this blog

Why is my reports service not connecting?

I am trying to pull some data from a Postgres database using Node.js and node-postures but I can't figure out why my service isn't connecting. my routes/index.js file: const express = require('express'); const router = express.Router(); const ordersCountController = require('../controllers/ordersCountController'); const ordersController = require('../controllers/ordersController'); const weeklyReportsController = require('../controllers/weeklyReportsController'); router.get('/orders_count', ordersCountController); router.get('/orders', ordersController); router.get('/weekly_reports', weeklyReportsController); module.exports = router; My controllers/weeklyReportsController.js file: const weeklyReportsService = require('../services/weeklyReportsService'); const weeklyReportsController = async (req, res) => { try { const data = await weeklyReportsService; res.json({data}) console...

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype

The number of nodes and edges I calculated manually and by a method provided by networkx library dont match

I am trying to analyse a graph using networkx library in Python. I have implemented a function that returns the nodes and edges of that graph. After that I counted the number of nodes and edges by implementing the len() function for nodes and edges, which gave me 17 for both nodes and edges. However, when I used the method graph.number_of_nodes() of networkx library it gave me 53. My code: import pandas as pd import networkx as nx import matplotlib.pyplot as plt header_list = ["a","b","w"] E =pd.read_csv("aves-barn-swallow-contact-network.edges",sep=" ",header= None,names=header_list) # print(E.head()) # prints first few rows of the csv file G = nx.from_pandas_edgelist(E,"a","b",["w"]) nx.draw(G) plt.show() class GraphAnalyse: #finding nodes and edges def nodeEdge(self,Graph): nodes = Graph.nodes() edges = Graph.edges() ...