بتاريخ: 23 أبريل 20169 سنة comment_273910 السلام عليكم ورحمة الله و بركاته عندي مشكلة و اريد مساعدتكم المشكله تتلخص في أنه يوجد جدول يستخدم في ادخال بيانات و حفظها من خلال ADF form و زر commit أريد أن أجعل اليوسر يقوم بعمل upload لأي ملف في مسار محدد علي السيرفر و بالفعل قمت بخطوات شرح المهندس مصطفي ماجد و الكود الحمد لله شغال كويس و بيحفظ اي نوع ملفات ع المسار المحدد و قمت بزيادة ثلاثة أعمده FileName - ContetType - Path علي الجدول المسحوب منه هذه ADFform وكذلك قمت باضافتهم في ال EO و ال VO المرتبطين بهذا الجدول حتي أتمكن من تخزين معلومات ما قام اليوسر برفعه بالداتابيز وحتي اتمكن من استرجاعها عن طريق ال userId الذي قام بال upload وجربت أكثر من طريقه من الانترنت ولم تصلح ... وسأرفق لحضراتكم طريقه من ضمن الطرق التي وجدتها و لم تصلح وللعلم فقد طبقت هذه الطريقه و قمت بعمل execute لل method الموجوده بال AmiImpl كما هو موضح بالصوره وعند التفيذ يقوم باعطاء رسالة خطأ تفيد بأن حقل ال ID لا يجب ان يكون فارغ علي الرغم من انني ادخلته فعلا قبل الحفظ أنا اعلم ان المشكله بالكود الموجود في ال AmiIMpl لأنه يقوم بعمل حفظ و لكني قمت بتعديله و لم يصلح أسف جدا ع الاطاله ... فقط حاولت التوضيح قدر المستطاع لذا أرجوا مساعدتني أشكركم bean.txt AMIIMP.txt تقديم بلاغ
بتاريخ: 24 أبريل 20169 سنة كاتب الموضوع comment_273917 هل تريد الحفظ على هيئة BLOB؟ والله ياباشمهندس مصطفي انا بفضل حفظ الملفات اللي هيتعملها upload علي الهارد ديسك والاكتفاء بالاحتفاظ بمعلومات عنها زي اسمها و مسارها مثلا جوا الداتا بيز وذلك حتي لا يزيد حجم الداتا بيس... اشكرك تقديم بلاغ
بتاريخ: 24 أبريل 20169 سنة comment_273923 حسناً ما المشكلة التي قابلتها؟ حسب كلامك فإن الملف تم حفظه بنجاح تقديم بلاغ
بتاريخ: 24 أبريل 20169 سنة كاتب الموضوع comment_273924 حسناً ما المشكلة التي قابلتها؟ حسب كلامك فإن الملف تم حفظه بنجاح المشكله أن الاعمده التي قمت باضافتها(contentType-fileName-path) لحفظ معلومات الملف الذي تم عمل upload له لم تحفظ بالداتا بيس لا تحفظ شيئا تقديم بلاغ
بتاريخ: 24 أبريل 20169 سنة كاتب الموضوع comment_273932 أريد فقط بعد رفع الملف و الضغط علي commit يقوم بحفظ هذه البيانات بالداتا بيس تقديم بلاغ
بتاريخ: 24 أبريل 20169 سنة comment_273936 حسناً ما المشكلة التي قابلتها؟ حسب كلامك فإن الملف تم حفظه بنجاح المشكله أن الاعمده التي قمت باضافتها(contentType-fileName-path) لحفظ معلومات الملف الذي تم عمل upload له لم تحفظ بالداتا بيس لا تحفظ شيئا الكود يقوم بقراءة المعلومات فقط أنت لم تضع أي جملة لحفظ هذه البيانات تقديم بلاغ
بتاريخ: 24 أبريل 20169 سنة كاتب الموضوع comment_273941 حسناً ما المشكلة التي قابلتها؟ حسب كلامك فإن الملف تم حفظه بنجاح المشكله أن الاعمده التي قمت باضافتها(contentType-fileName-path) لحفظ معلومات الملف الذي تم عمل upload له لم تحفظ بالداتا بيس لا تحفظ شيئا الكود يقوم بقراءة المعلومات فقط أنت لم تضع أي جملة لحفظ هذه البيانات باشمهندس مصطفي مشكور علي الرد سأحاول توضيح الامر أكثر أنا استخدمت نفس الطريقه الموجوده بهذا اللينك : http://quickadf.blogspot.com.eg/2015/04/file-uploading-and-downloading-in.html بالضبط ولكني المشكله التي وقعت فيها هي : في ال application الذي اعمل به بعد دخول اليوسر بنجاح تظهر له adf Form خاليه لتسجيل بعض البيانات و بعدها يضغط علي زر commit الذي يقوم بدوره بالحفظ و وتفريغ محتويات ال form مره اخري لتستقبل اي بيانات جديده(وحضرتك شرحت الطريقه دي قبل كده) فطلب مني تعديل هذه الفورم بحيث تسمح لليوسر بعمل attach في نفس الفورمه و بعد الضغط علي commit يتم حفظ بيانات الملف في الجدول ولأني أعلم طريقة ال upload فقط و لا أعلم كيفية حفظ معلومات الملف المرفق في db إستخدمت الطريق السابقه و التي كانت نتيجتها انني بمجرد الضغط عل زر ال upload و اختيار الملف يظهر امامي الملف بمحتوياته و مساره و نوعه مع رسالة خطأ تفيد بوجوب ادخال ال Id علي الرغم انه تم ادخاله بالفعل و بالتالي عدم حفظ اي شيئ مطلقا لذلك توقعت ان المشكله في الميثود الموجوده في ال AmImpl لأنها تقوم بعمل newRow و ملئ محتوياته ثم عمل commit فحاولت تعديلها او ايجاد طريقة أسهل و لم انجح في ذلك فاذا تكرمت لو ان هناك طريقه للوصول الي المطلوب أكون شاكرا وجزاكم الله خيرا تقديم بلاغ
بتاريخ: 25 أبريل 20169 سنة كاتب الموضوع comment_273979 حسناً ما المشكلة التي قابلتها؟ حسب كلامك فإن الملف تم حفظه بنجاح المشكله أن الاعمده التي قمت باضافتها(contentType-fileName-path) لحفظ معلومات الملف الذي تم عمل upload له لم تحفظ بالداتا بيس لا تحفظ شيئا أشكرك باشمهندس مصطفي الحمد لله وصلت للحل و اشتغلت تمام تقديم بلاغ
بتاريخ: 9 مايو 20169 سنة comment_274449 السلام عليكم ورحمة الله هل يوجد فرق بين حفظ الملفات فى الداتابيز وحفظها على فولدر فى الجهاز واذ تكرمتو اريد مثال مطبق على الحفظ فى الفولدر تقديم بلاغ
بتاريخ: 10 مايو 20169 سنة comment_274482 السلام عليكم ياباشمهندس عندى مشكله فى الupload اشتغلت بنفس الطريقه بتاعة الفيديو بس لما اضغط uploadتجينى الرساله Error 500--Internal Server Error javax.faces.el.EvaluationException: java.lang.NullPointerException at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:788) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:306) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:62) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)Caused by: java.lang.NullPointerException at hr.view.backing.Upload.upload_action(Upload.java:73) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(Unknown Source) at com.sun.el.MethodExpressionImpl.invoke(Unknown Source) at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46) ... 44 more تقديم بلاغ
بتاريخ: 10 مايو 20169 سنة comment_274485 السلام عليكم ياباشمهندس ماعرفتش ايه المشكله لى يومين شغاله عليه بس ده الكود تبعى package hr.view.backing; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import oracle.adf.view.rich.component.rich.RichDocument; import oracle.adf.view.rich.component.rich.RichForm; import oracle.adf.view.rich.component.rich.input.RichInputFile; import oracle.adf.view.rich.component.rich.input.RichInputText; import oracle.adf.view.rich.component.rich.nav.RichCommandButton; import org.apache.myfaces.trinidad.model.UploadedFile; public class Upload { private String name; private UploadedFile uploadedfile; private RichForm f1; private RichDocument d1; private RichInputText it1; private RichInputFile if1; private RichCommandButton cb1; private UploadedFile file; public void setF1(RichForm f1) { this.f1 = f1; } public RichForm getF1() { return f1; } public void setD1(RichDocument d1) { this.d1 = d1; } public RichDocument getD1() { return d1; } public void setIt1(RichInputText it1) { this.it1 = it1; } public RichInputText getIt1() { return it1; } public void setIf1(RichInputFile if1) { this.if1 = if1; } public RichInputFile getIf1() { return if1; } public void setCb1(RichCommandButton cb1) { this.cb1 = cb1; } public RichCommandButton getCb1() { return cb1; } public String upload() throws Exception{ // Add event code here... { String uploadFolder="c:\\mytemp\\"; File myFile = new File(uploadFolder); if (myFile.exists () == false) { myFile.mkdir(); } InputStream is = uploadedfile.getInputStream(); byte[] buffer = new byte [1024]; String fileName = uploadedfile.getFilename(); FileOutputStream fos = new FileOutputStream (uploadFolder + fileName); int bytesread =0; while ( (bytesread = is.read(buffer)) != -1) { fos.write(buffer, 0, bytesread ); } fos.flush(); fos.close(); is.close(); uploadedfile.dispose(); return null; } } /** * @param name */ public void setName(String name) { this.name = name; } public String getName() { return name; } public void setUploadedfile(UploadedFile uploadedfile) { this.uploadedfile = uploadedfile; } public UploadedFile getUploadedfile() { return uploadedfile; } public void setFile(UploadedFile file) { this.file = file; } public UploadedFile getFile() { return file; } } تقديم بلاغ
بتاريخ: 11 مايو 20169 سنة comment_274542 الأخت تنزيل سبب الخطأ أنه أثناء تنفيذك للصفحة لم يتم إختيار أو تحديد (file) للرفع فحضرتك مباشرة تقومين بالضغط على زر Upload من دون إختيار file ولهذا عند الضغط على زر Upload يتم التحقق على إسم الـ file يجد القيمة null ويظهر هذا الخطأ أو بالأحرى يظهر Exception نوع NullPointerException فالمتعارف عليه تحديد file للرفع ثم الضغط على زر Upload أوليس هذا الخطأ الذي يظهر لديك كما في الصورة المرفقة تعمدت إظهار الخطأ كي ترين النتيجة تقديم بلاغ
بتاريخ: 12 مايو 20169 سنة comment_274576 السلام عليكم باشمهندسه ميسم انا بخت الملف وبعديها بضغط upload وبتجينى الرساله اياها باشمهندس مصطفى الخاصيهuser uploadلقيتها true هل مفروض اعملها falseاو اخليها true تقديم بلاغ
بتاريخ: 12 مايو 20169 سنة comment_274577 السلام عليكم باشمهندسه ميسم انا بخت الملف وبعديها بضغط upload وبتجينى الرساله اياها باشمهندس مصطفى الخاصيهuser uploadلقيتها true هل مفروض اعملها falseاو اخليها true تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.