IRONSOFTWAREHOME
NODE-HILFE

dropzone npm (Wie es für Entwickler funktioniert)

Curtis Chau
Curtis Chau
Updated: 20. Juni 2026

Das Hochladen von Dateien ist ein gängiges Feature in Webanwendungen, und seine Benutzerfreundlichkeit ist entscheidend für eine gute Benutzererfahrung. Eine beliebte Bibliothek, die diesen Prozess vereinfacht, ist Dropzone.js. In Kombination mit React kann Dropzone ein leistungsstarkes Werkzeug zur Implementierung von Drag-and-Drop-Datei-Uploads sein. Der react-dropzone integriert sich perfekt und nahtlos mit minimalem Entwicklungsaufwand. Dieser Artikel wird Sie durch die Integration von Dropzone in eine React-Anwendung mit dem react-dropzone-Paket führen, einem ausgezeichneten Wrapper um die Dropzone.js-Bibliothek.

In diesem Artikel betrachten wir auch das NPM-Paket IronPDF, um PDF-Dokumente zu erzeugen, bearbeiten und verwalten.

Warum Dropzone in React verwenden?

Dropzone bietet verschiedene Features, die das Hochladen von Dateien nahtlos machen:

1. Drag-and-Drop-Schnittstelle

Ermöglicht es Benutzern, Dateien zu ziehen und abzulegen, um Dateiauswahl zu aktivieren, und öffnet programmatisch einen Dateidialog.

2. Vorschauen

Zeigt Standardbildminiaturenvorschauen von abgelegten Dateien an und verbessert so die Lesbarkeit der Benutzeroberfläche.

3. Mehrfach-Uploads

Unterstützt das Hochladen mehrerer Dateien gleichzeitig.

4. Anpassbar

In hohem Maße anpassbar mit verschiedenen Optionen und Rückrufen. Sie können das Öffnen des Dateidialogs oder der Dateiauswahl-Dialoge anpassen.

5. Große-Dateien-Chunked-Uploads

Lädt große Dateien mit Chunk-Upload hoch.

6. Ereignisse behandeln

Dateidialog-Abbruch-Callback und Browser-Bildgrößenänderungsereignisse können behandelt werden.

Einrichten der React-Anwendung

Stellen Sie vor der Integration von Dropzone sicher, dass Sie eine React-Anwendung eingerichtet haben. Falls nicht, können Sie ein neues React-Projekt mit Create React App erstellen:

npx create-react-app dropzone-demo
cd dropzone-demo
SHELL

Installation von react-dropzone

Um Dropzone in Ihrem React-Projekt zu verwenden, müssen Sie das react-dropzone-Paket installieren:

npm install react-dropzone
# or
yarn add react-dropzone
SHELL

Grundlegende Nutzung von react-dropzone

Hier ist ein einfaches Beispiel für die Nutzung von react-dropzone in einer React-Komponente:

import React, { useCallback } from 'react';
import { useDropzone } from 'react-dropzone';

// DropzoneComponent is a React component demonstrating basic usage of react-dropzone
const DropzoneComponent = () => {
  // Callback to handle file drops
  const onDrop = useCallback((acceptedFiles) => {
    console.log(acceptedFiles); // Log the accepted files
  }, []);
  
  // Extracted properties from useDropzone hook
  const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });
  
  return (
    <div {...getRootProps()} style={dropzoneStyle}>
      <input {...getInputProps()} />
      {
        isDragActive ? 
          <p>Drop the files here ...</p> : 
          <p>Drag 'n' drop some files here, or click to select files</p>
      }
    </div>
  );
};

// Styles for the dropzone area
const dropzoneStyle = {
  border: '2px dashed #0087F7',
  borderRadius: '5px',
  padding: '20px',
  textAlign: 'center',
  cursor: 'pointer'
};

export default DropzoneComponent;
Text

Datei-Uploads handhaben

Wenn Dateien abgelegt oder ausgewählt werden, erhält der onDrop-Callback ein Array akzeptierter Dateien. Sie können dann die Dateien verarbeiten, z. B. sie auf einen Server hochladen. So können Sie den onDrop-Callback erweitern, um Dateien mit fetch hochzuladen:

// onDrop callback to handle file uploads
const onDrop = useCallback((acceptedFiles) => {
  const formData = new FormData();
  // Append each file to the formData
  acceptedFiles.forEach((file) => {
    formData.append('files', file);
  });

  // Send a POST request to upload the files
  fetch('https://your-upload-endpoint', {
    method: 'POST',
    body: formData,
  })
  .then(response => response.json()) // Parse the JSON from the response
  .then(data => console.log(data)) // Log the response data
  .catch(error => console.error('Error:', error)); // Handle errors
}, []);
Text

Vorschauen anzeigen

Sie können auch Vorschaubilder der hochgeladenen Dateien anzeigen. Hier ist ein Beispiel, wie Sie dies tun können:

import React, { useCallback, useState } from 'react';
import { useDropzone } from 'react-dropzone';

const DropzoneComponent = () => {
  const [files, setFiles] = useState([]);
  
  // onDrop callback to handle file drops and generate previews
  const onDrop = useCallback((acceptedFiles) => {
    setFiles(acceptedFiles.map(file => Object.assign(file, {
      preview: URL.createObjectURL(file)
    })));
  }, []);

  const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });
  
  // Generate thumbnails for each file
  const thumbs = files.map(file => (
    <div key={file.name}>
      <img
        src={file.preview}
        style={{width: '100px', height: '100px'}}
        alt={file.name}
      />
    </div>
  ));

  return (
    <div>
      <div {...getRootProps()} style={dropzoneStyle}>
        <input {...getInputProps()} />
        {
          isDragActive ? 
            <p>Drop the files here ...</p> : 
            <p>Drag 'n' drop some files here, or click to select files</p>
        }
      </div>
      <div>
        {thumbs}
      </div>
    </div>
  );
};

// Styles for the dropzone area
const dropzoneStyle = {
  border: '2px dashed #0087F7',
  borderRadius: '5px',
  padding: '20px',
  textAlign: 'center',
  cursor: 'pointer'
};

export default DropzoneComponent;
Text

Aufräumen

Es ist wichtig, die Objekt-URLs freizugeben, um Speicherlecks zu vermeiden. Sie können dies mit dem useEffect-Hook erreichen:

import { useEffect } from 'react';

// useEffect to clean up object URLs to prevent memory leaks
useEffect(() => {
  // Revoke the data URIs
  return () => files.forEach(file => URL.revokeObjectURL(file.preview));
}, [files]);
Text

Einführung in IronPDF

IronPDF ist ein leistungsstarkes NPM-Paket, das entwickelt wurde, um die PDF-Erstellung in Node.js-Anwendungen zu erleichtern. Es ermöglicht Ihnen, PDF-Dokumente aus HTML-Inhalten, URLs oder sogar vorhandenen PDF-Dateien zu erstellen. Egal, ob Sie Rechnungen, Berichte oder andere Dokumente erzeugen, IronPDF vereinfacht den Prozess mit seiner intuitiven API und seinem leistungsstarken Funktionsumfang.

Zu den wichtigsten Funktionen von IronPDF gehören

1. HTML-zu-PDF-Umwandlung

Konvertieren Sie HTML-Inhalte mühelos in PDF-Dokumente. Dieses Feature ist besonders nützlich zur Erzeugung dynamischer PDFs aus Webinhalten.

2. URL-zu-PDF-Umwandlung

PDFs direkt aus URLs generieren. Dies ermöglicht es Ihnen, den Inhalt von Webseiten zu erfassen und sie als PDF-Dateien programmatisch zu speichern.

3. PDF-Manipulation

Verschmelzen, teilen und manipulieren Sie vorhandene PDF-Dokumente mit Leichtigkeit. IronPDF bietet Funktionen zur Manipulation von PDF-Dateien, wie das Anhängen von Seiten, das Aufteilen von Dokumenten und vieles mehr.

4. PDF-Sicherheit

Sichern Sie Ihre PDF-Dokumente, indem Sie sie mit Passwörtern verschlüsseln oder digitale Signaturen anwenden. IronPDF bietet Optionen zum Schutz Ihrer sensiblen Dokumente vor unberechtigtem Zugriff.

5. Hochwertige Ausgabe

Erzeugen Sie hochwertige PDF-Dokumente mit präziser Wiedergabe von Text, Bildern und Formatierungen. IronPDF stellt sicher, dass Ihre generierten PDFs die Originalinhalte getreu wiedergeben.

6. Plattformübergreifende Kompatibilität

IronPDF ist mit verschiedenen Plattformen kompatibel, einschließlich Windows, Linux und macOS, was es für eine Vielzahl von Entwicklungsumgebungen geeignet macht.

7. Einfache Integration

Integrieren Sie IronPDF mühelos in Ihre Node.js-Anwendungen mithilfe seines npm-Pakets. Die API ist gut dokumentiert, was es einfach macht, PDF-Erzeugungsfunktionen in Ihre Projekte einzubauen.

Egal, ob Sie eine Webanwendung, ein serverseitiges Skript oder ein Kommandozeilenwerkzeug entwickeln, IronPDF ermöglicht es Ihnen, PDF-Dokumente in professioneller Qualität effizient und zuverlässig zu erstellen.

PDF-Dokument mit IronPDF erzeugen und Dropzone NPM-Paket verwenden

Abhängigkeiten installieren: Erstellen Sie zunächst ein neues Next.js-Projekt (falls noch nicht geschehen) mit folgendem Befehl: Siehe die Setup- Seite .

npx create-next-app@latest demo-dropzone-ironpdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
SHELL

Navigieren Sie als Nächstes in Ihr Projektverzeichnis:

cd demo-dropzone-ironpdf
SHELL

Installieren Sie die erforderlichen Pakete:

> npm install @ironsoftware/ironpdf, react-dropzone

PDF erstellen: Jetzt erstellen wir ein einfaches Beispiel für die Generierung einer PDF-Datei mit IronPDF. Fügen Sie den folgenden Code in Ihre Next.js-Komponente (z.B. pages/index.tsx) ein:

import Head from 'next/head';
import styles from '../styles/Home.module.css';
import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
import { useState } from "react";
import DropzoneComponent from "../components/mydropzone";

export default function Home() {
    const [textInput, setTextInput] = useState('');

    // Function to display different types of toast messages
    const notify = () => {
        toast.success("Success! This is a success message.", {
            position: "top-right"
        });
        toast.info("Information message", {
            position: "bottom-left"
        });
        toast.warn("Warning message", {
            autoClose: 5000
        });
        toast.error("Error message", {
            className: 'custom-toast',
            style: { background: 'red', color: 'white' }
        });
    };

    // Function to generate and download a PDF
    const generatePdf = async () => {
        try {
            const response = await fetch('/api/pdf?url=' + textInput);
            const blob = await response.blob();
            const url = window.URL.createObjectURL(new Blob([blob]));
            const link = document.createElement('a');
            link.href = url;
            link.setAttribute('download', 'awesomeIron.pdf');
            document.body.appendChild(link);
            link.click(); // Trigger the download
            link.parentNode.removeChild(link); // Remove the link
        } catch (error) {
            console.error('Error generating PDF:', error);
        }
    };

    // Handle changes in the text input field
    const handleChange = (event) => {
        setTextInput(event.target.value);
    }

    return (
        <div className={styles.container}>
            <Head>
                <title>Generate PDF Using IronPDF</title>
                <link rel="icon" href="/favicon.ico" />
            </Head>
            <main>
                <h1>Demo Drop Zone and Generate PDF Using IronPDF</h1>
                <DropzoneComponent />
                <p>
                    <span>Enter Url To Convert to PDF:</span>{" "}
                </p>
                <button style={{margin: 20, padding: 5}} onClick={generatePdf}>Generate PDF</button>
            </main>
            <style jsx>{`
                main {
                    padding: 5rem 0;
                    flex: 1;
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                }
                footer {
                    width: 100%;
                    height: 100px;
                    border-top: 1px solid #eaeaea;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                }
                footer img {
                    margin-left: 0.5rem;
                }
                footer a {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    text-decoration: none;
                    color: inherit;
                }
                code {
                    background: #fafafa;
                    border-radius: 5px;
                    padding: 0.75rem;
                    font-size: 1.1rem;
                    font-family: Menlo,
                    Monaco,
                    Lucida Console,
                    Liberation Mono,
                    DejaVu Sans Mono,
                    Bitstream Vera Sans Mono,
                    Courier New,
                    monospace;
                }
            `}</style>
            <style jsx global>{`
                html,
                body {
                    padding: 0;
                    margin: 0;
                    font-family: -apple-system,
                    BlinkMacSystemFont,
                    Segoe UI,
                    Roboto,
                    Oxygen,
                    Ubuntu,
                    Cantarell,
                    Fira Sans,
                    Droid Sans,
                    Helvetica Neue,
                    sans-serif;
                }
                * {
                    box-sizing: border-box;
                }
            `}</style>
        </div>
    );
}
Text

Da IronPDF nur auf Node läuft, fügen Sie als Nächstes eine API für die App hinzu, in der PDF auf Node erzeugt wird.

Erstellen Sie eine Datei pdf.js im Ordner pages/api und fügen Sie den untenstehenden Quellcode hinzu:

// pages/api/pdf.js
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";

export default async function handler(req, res) {
    try {
        const url = req.query.url;
        const pdf = await PdfDocument.fromUrl(url);
        const data = await pdf.saveAsBuffer();
        console.log('PDF data:', data);
        
        res.setHeader('Content-Type', 'application/pdf');
        res.setHeader('Content-Disposition', 'attachment; filename=awesomeIron.pdf');
        res.send(data);
    } catch (error) {
        console.error('Error generating PDF:', error);
        res.status(500).end();
    }
}
JavaScript

Hinweis: Stellen Sie im obigen Code sicher, dass Sie Ihren eigenen Lizenzschlüssel hinzufügen.

App ausführen: Starten Sie Ihre Next.js-App:

npm run dev
# or
yarn dev
SHELL

Geben Sie nun die Website-URL ein, um ein PDF zu erzeugen, und klicken Sie auf "PDF erzeugen". Eine Datei namens awesomeIron.pdf wird wie unten gezeigt heruntergeladen.

Klicken Sie jetzt auf die Dropzone und wählen Sie die heruntergeladene Datei aus. Dies zeigt eine Vorschau der Datei mit dem unten angezeigten Namen: awesomeIron.pdf.

IronPDF-Lizenz

Siehe die IronPDF-Seite für Lizenzierungsdetails.

Platzieren Sie den Lizenzschlüssel in der App wie unten gezeigt:

import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
JavaScript

Abschluss

Die Integration von Dropzone in React mit react-dropzone ist ein unkomplizierter Prozess, der die Datei-Upload-Erfahrung erheblich verbessert. Mit Funktionen wie Drag-and-Drop, Dateivorschauen und umfangreichen Anpassungsoptionen kann react-dropzone eine wertvolle Ergänzung für Ihre React-Projekte sein. Beginnen Sie, seine Fähigkeiten zu erkunden und passen Sie es an die Bedürfnisse Ihrer Anwendung an!

IronPDF, andererseits, ist eine vielseitige Bibliothek für die PDF-Erstellung und -Manipulation, die sich leicht in Anwendungen integrieren lässt. IronPDF bietet umfassende Dokumentation und Beispiele, um Entwicklern beim Einstieg zu helfen.

Indem Sie die in diesem Artikel beschriebenen Schritte befolgen, können Sie eine robuste Datei-Upload-Komponente in Ihrer React-Anwendung erstellen und auch Funktionen zur PDF-Dateierstellung in moderne Anwendungen integrieren.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

OR
bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
AWS-Logo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Azure (WebApps, Funktionen v3)
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Azure (WebApps, Funktionen v3)
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach 'IronPDF'
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows-Installer hier herunter.

  1. Laden Sie IronPDF herunter und entpacken Sie es in ein Verzeichnis wie ~/Libs innerhalb Ihres Lösungsverzeichnisses
  2. Im Visual Studio-Projektmappen-Explorer klicken Sie mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronPDF.dll"

Lizenzen ab 749 $