2014-01-03 2 views
1

У меня есть php-скрипт, который загружает файлы в Alfresco с помощью curl, он отлично работает с локальной настройкой Alfresco в моей системе. Но сбой, когда он используется для загрузки в производственную копию.Не удается загрузить файл в Alfresco с помощью Curl

Ниже будет завиток ответ на отказ при загрузке файла,

{ 
    "status" : 
{ 
    "code" : 500, 
    "name" : "Internal Error", 
    "description" : "An error inside the HTTP server which prevented it from fulfilling the request." 
}, 

"message" : "00031437 Unexpected error occurred during upload of new content.", 
"exception" : "org.springframework.extensions.webscripts.WebScriptException - 00031437 Unexpected error occurred during upload of new content.", 

"callstack" : 
[ 
    ""  ,"java.lang.IllegalArgumentException: Class {}application\/pdf has not been defined in the data dictionary" 
    ,"org.alfresco.repo.policy.ClassPolicyDelegate.get(ClassPolicyDelegate.java:98)" 
    ,"org.alfresco.repo.policy.ClassPolicyDelegate.get(ClassPolicyDelegate.java:83)" 
    ,"org.alfresco.repo.node.AbstractNodeServiceImpl.invokeBeforeCreateNode(AbstractNodeServiceImpl.java:283)" 
    ,"org.alfresco.repo.node.db.DbNodeServiceImpl.createNode(DbNodeServiceImpl.java:363)" 
    ,"sun.reflect.GeneratedMethodAccessor1147.invoke(Unknown Source)" 
    ,"sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)" 
    ,"java.lang.reflect.Method.invoke(Method.java:606)" 
    ,"org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)" 
    ,"org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)" 
    ,"org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)" 
    ,"org.alfresco.repo.tenant.MultiTNodeServiceInterceptor.invoke(MultiTNodeServiceInterceptor.java:104)" 
    ,"org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)" 
    ,"org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)" 
    ,"com.sun.proxy.$Proxy9.createNode(Unknown Source)" 
    ,"sun.reflect.GeneratedMethodAccessor1147.invoke(Unknown Source)" 
    ,"sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)" 
    ,"java.lang.reflect.Method.invoke(Method.java:606)" 
    . 
    . 
    . 
} 

Любая идея?

+2

Очень сложно рассказать на основе информации. Кажется, система пытается создать узел с использованием типа mime в качестве локального qname. Я бы предположил, что данные, которые вы отправляете, не совсем соответствуют ожиданиям Alfresco. Какие данные/параметры) вы отправляете на какой адрес (URL)? –

+0

Ниже приведен код, который я использую, отлично работает на местной копии Alfresco. Но, выдает ошибку на рабочем сервере. '$ url = 'http: // admin: passwd @ WEBURL: 8000/alfresco/service/api/upload'; $ filename = 'john.jpeg'; $ mimetype = mime_content_type ($ filename); $ postfields = массив ( 'FileData' => '@'. $ Имя_файла, 'имя_файла' => $ имя_файла, 'siteid' => 'MySite', 'containerid' => 'documentLibrary', 'uploaddirectory' => 'test', 'contenttype' => $ mimetype ); ' – Rumi

ответ

2

Значение contenttype должно быть допустимым типом qname. Взгляните на документацию по адресу http://WEBURL:8000/alfresco/service/index/uri/api/upload. Если есть сомнения, попробуйте cm:content или это полное представление.

+0

Тот же код работает в моей системе. – Rumi

+0

Трудно сказать, почему, но это в значительной степени похоже на то, что $ mimetype имеет значение «application/pdf», и использование этого как contenttype неверно. Дважды проверьте, что вы проходите. Если это значение действительно работает в вашей системе, возможно, вам (случайно) удалось создать тип контента с локальным именем «application/pdf» и без пространства имен. –

+1

Исправлено. Просто удалил тип контента из полей post. – Rumi

Смежные вопросы