English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
لقد استخدمت مؤخرًا SFTP لتحميل ملفات المشاريع وأجريت بعض البحث وجعلت بعض النتائج، لسهولة البحث في المستقبل. إليك الكود التالي:
/** * تحميل الملف إلى الخادم * * @param filePath * مسار الملف * @param channelSftp * channelSftp * @return */ public static boolean uploadFile(String filePath, ChannelSftp channelSftp) { OutputStream outstream = null; InputStream instream = null; boolean successFlag = false; try { File isfile = new File(filePath); إذا (isfile.isFile()) { outstream = channelSftp.put(isfile.getName()); File file = new File(filePath); إذا (file.exists()) { instream = new FileInputStream(file); byte b[] = new byte[1024]; int n; while ((n = instream.read(b)) != -1) { outstream.write(b, 0, n); } outstream.flush(); } successFlag = true; } } e.printStackTrace(); } try { إذا (instream != null) { instream.close(); } إذا (outstream != null) { outstream.close(); } } catch (IOException e) { e.printStackTrace(); } } return successFlag; } private static Session initJschSession() throws JSchException { int ftpPort = 0; String ftpHost = ""; String port = "00"; // رقم المنفذ لـ sftp String ftpUserName = ""; // اسم المستخدم String ftpPassword = ""; // كلمة المرور للاتصال String privateKey = ""; // String passphrase = ""; إذا (port != null && !port.equals("")) { ftpPort = Integer.valueOf(port); } JSch jsch = new JSch(); // إنشاء جسم JSch if (StringUtils.isNotBlank(privateKey) && StringUtils.isNotBlank(passphrase)) { jsch.addIdentity(privateKey, passphrase); } if (StringUtils.isNotBlank(privateKey) && StringUtils.isBlank(passphrase)) { jsch.addIdentity(privateKey); } jsch.getSession(ftpUserName, ftpHost, ftpPort); Session session = jsch.getSession(ftpUserName, ftpHost, ftpPort); // الحصول على جسم Session بناءً على اسم المستخدم، عنوان IP للمضيف، ومرفق if (StringUtils.isNotBlank(ftpPassword)) { session.setPassword(ftpPassword); // إعداد كلمة المرور } return session; } /** * الحصول على اتصال ChannelSftp * * @param timeout * وقت الوصول الزمني * @return عودة ChannelSftp * @throws JSchException */ public static ChannelSftp getChannelSftp(Session session, int timeout) throws JSchException { Channel channel = null; Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); // إعداد properties لجسم Session session.setTimeout(timeout); // تعيين وقت الوصول الزمني session.connect(); // إنشاء اتصال عبر Session channel = session.openChannel("sftp"); // فتح قناة SFTP channel.connect(); // إنشاء اتصال قناة SFTP return (ChannelSftp) channel; } /** * قطع اتصال SFTP * * @param session * جلسة * @param channel * قناة */ public static void closeConnection(Channel channel, Session session) { try { if (session != null) { session.disconnect(); // إغلاق رابط session } if (channel != null) { channel.disconnect(); // قطع الاتصال } } e.printStackTrace(); } }
اسم المستخدم وكلمة المرور هنا تم تعيينها بنفسك، يتم تعبئة هذا الطريقة ببساطة لسهولة الاستخدام.
ما تم ذكره أعلاه هو استخدام Java لتحميل ملفات SFTP إلى الخادم بسهولة تم تقديمه من قبل المحررين، آمل أن يكون مفيدًا لكم، إذا كان لديكم أي استفسارات، يرجى ترك تعليق، وسأقوم بالرد على رسائلكم في الوقت المناسب. شكرًا جزيلاً أيضًا للحضور على دعم موقع دليل النقاش!
البيان: محتويات هذا المقال تم جمعها من الإنترنت، وتعني حقوق النشر للمالك الأصلي، تم جمع المحتوى من قبل المستخدمين عبر الإنترنت بتحميلهم الذاتي، هذا الموقع لا يملك حقوق الملكية، ولم يتم تعديل المحتوى بشكل إنساني، ولا يتحمل أي مسؤولية قانونية متعلقة بذلك. إذا اكتشفتم محتوى يشتبه في حقوق النشر، الرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (الرجاء استبدال # ب @ عند إرسال البريد الإلكتروني) لإبلاغنا، وقدموا الأدلة ذات الصلة، إذا تم التحقق من ذلك، سيتم حذف المحتوى المشتبه فيه فورًا.